1

我有一个带有选项卡控件的表单。

我希望每个选项卡都有自己的界面和自己的大小,以便我可以根据需要进行按钮布局。

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

目前,我设置了默认表单高度和默认选项卡高度(由选项卡索引 0 设置)。

我需要一种编程方式来单独设置每个选项卡的高度,并且在 event 上selectedIndexChanged,我可以根据需要相对于当前选定的选项卡调整表单的大小,但我不知道如何单独更改每个选项卡的高度。

我怎样才能做到这一点?

4

1 回答 1

1

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

假设 TabControl 在父窗体上为 Dock-Filled,您可以尝试使用以下代码根据 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 实现。

于 2013-10-17T21:18:51.417 回答