Resizing tabs individually and programmatically in C# with Winforms
我有一个带有选项卡控件的表单。
我希望每个选项卡都有自己的界面和自己的大小,以便我可以根据需要进行按钮布局。
在这个例子中,我只是改变高度。
目前我设置了默认表单高度和默认选项卡高度(由选项卡索引 0 设置)。
我需要一种编程方式来单独设置每个选项卡的高度,并且在事件
我怎样才能做到这一点?
听起来您谈论的更多是基于所选选项卡的表单高度,而不是每个单独选项卡项的高度。
假设 TabControl 在父窗体上为 Dock-Filled,您可以尝试使用此代码根据 TabPage 的内容调整窗体的高度:
1 2 3 4 5 6 | void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { var controls = tabControl1.SelectedTab.Controls.Cast<Control>(); if (controls.Any()) { this.Height = controls.Max(x => x.Bottom) + 72; } } |
该例程在 TabPage 上找到基于最低的控件,然后添加一个 72 的忽悠数以解决表单非客户区的高度和其他杂项间距问题。
但请注意,根据选项卡选择不断更改表单的高度可能会令最终用户感到不快,并且可能不被视为流行的 UX 实现。