我尝试在C# Winforms中实现一个非常简单的功能,但是遇到了很大的问题。我在TabPage上有两个GroupBox,一个在右侧停靠,一个在底部停靠。此外,这个页面上还有一个图表(System.Windows.Forms.DataVisualization.Charting)。该图表需要填充页面上剩余的空间。
首先,我遇到了图表隐藏在两个GroupBox后面而仍然填充整个页面的问题。然而,我发现可以通过使用“BringToFront”(或重新排序文档大纲顺序)来解决这个问题,然后图表就能正确停靠,并且不会重叠任何其他控件。
但是,我现在想要在运行时向该页面添加一个图表,它又再次填充整个页面并隐藏在其他控件后面。我该如何使其正常工作?
编辑: 忘记提到调用"BringToFront"会抛出异常"Width must be greater than 0px"。
首先,我遇到了图表隐藏在两个GroupBox后面而仍然填充整个页面的问题。然而,我发现可以通过使用“BringToFront”(或重新排序文档大纲顺序)来解决这个问题,然后图表就能正确停靠,并且不会重叠任何其他控件。
但是,我现在想要在运行时向该页面添加一个图表,它又再次填充整个页面并隐藏在其他控件后面。我该如何使其正常工作?
编辑: 忘记提到调用"BringToFront"会抛出异常"Width must be greater than 0px"。
chart_TapChart = new Chart();
chart_TapChart.Dock = DockStyle.Fill;
chart_TapChart.BringToFront();
GroupBox gp1 = new GroupBox();
gp1.Dock = DockStyle.Right;
GroupBox gp2 = new GroupBox();
gp2.Dock = DockStyle.Bottom;
this.Controls.Add(chart_TapChart); <--this refers to tabpage
this.Controls.Add(gp1);
this.Controls.Add(gp2);