使用Winforms在C#中单独和以编程方式调整选项卡的大小

时间:2013-10-17 17:11:49

标签: c# winforms tabs resize tabcontrol

我有一个带有标签控件的表单。

我希望每个标签都有自己的大小,这样我就可以根据需要设置按钮布局。

在这个例子中,我只是改变了身高。

目前我有默认的表格高度和默认标签高度设置(由标签索引0设置)。

我需要一种以编程方式单独设置每个标签的高度,而在事件selectedIndexChanged上,我可以根据需要调整相对于当前所选标签的大小,但我不知道如何更改每个标签标签的高度。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

听起来您更多地谈论基于所选标签的表单高度而不是每个标签项的高度。

假设TabControl在父表单上填充了Dock,您可以尝试使用此代码根据TabPage的内容调整表单的高度:

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实现。