Was*_*abi 2 c# tabcontrol winforms
我有一个带有一堆控件的 Windows 窗体,它工作得很好。所有控件都包含在一个中,TableLayoutPanel该控件根据控件基本大小自动调整大小,并Form根据面板自动调整大小,因此我实际上不必担心不同平台和计算机中的大小,因为所有内容都应根据当前配置的设置调整大小。
例如,这是一个简单的例子来说明它的外观。相关代码是:
//...code defining all the other Commands and .Add()'ing them to the Panel
form.Controls.Add(Panel);
form.AutoSize = true;
form.FormBorderStyle = FormBorderStyle.FixedDialog;
form.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

我现在想要获取整个面板并将其放置在 TabControl 中,以便它只是许多其他选项卡中的一个选项卡。我这样做如下:
//...code defining all the other Commands and .Add()'ing them to the Panel
TabControl tabControl = new TabControl();
tabControl.Dock = DockStyle.Fill;
TabPage tabPage = new TabPage("C1");
tabPage.Controls.Add(Panel);
tabControl.TabPages.Add(tabPage);
form.Controls.Add(tabControl);
form.AutoSize = true;
form.FormBorderStyle = FormBorderStyle.FixedDialog;
form.ShowDialog();
Run Code Online (Sandbox Code Playgroud)
所以基本上,我不是将 the 添加Panel到Form,而是将其TabPage添加到 添加到 的 ,TabControl然后将其添加到Form。然而,这会导致:
文件指出,和AutoSize的财产仅仅是基础设施,没有任何相关性。我发现的大多数“解决方案”都建议使用,这有助于TabControlTabPage.Dock = DockStyles.FillTabControl现在填写表格,如上所示,而不是只占据其中的一小部分。然而,表格本身保持不变。
我想过使用 的Panel大小并使 的TabControl大小等于它(或它的函数),但我注意到参数Size显然只在Panel绘制时才改变,因为添加控件不会改变它根本没有,所以我必须等待Panel绘制然后调整它的大小,这听起来很草率。有更好的解决方案吗?
更新 使用锚定和设置
Panel.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
tabControl.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
Run Code Online (Sandbox Code Playgroud)
简单地导致这个:
| 归档时间: |
|
| 查看次数: |
23868 次 |
| 最近记录: |