[英]Resizing tabs individually and programmatically in C# with Winforms
我有一個帶有選項卡控件的表單。
我希望每個選項卡都有其自己的界面和大小,以便可以根據需要設置按鈕的布局。
在此示例中,我僅更改高度。
目前,我已經設置了默認的表單高度和默認的標簽高度(由標簽索引0設置)。
我需要一種編程方式來分別設置每個選項卡的高度,並且在事件selectedIndexChanged
,能夠根據需要相對於當前選定的選項卡調整窗體的大小,但是我不知道如何分別更改每個選項卡的高度。
我該如何實現?
聽起來您在談論基於所選選項卡的表單高度,而不是每個選項卡項目的高度。
假設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上找到最低的基於控件的控件,然后添加fudge數72以說明表單的非客戶區域的高度和其他其他間距問題。
但是請注意,根據選項卡的選擇不斷更改表單的高度可能會給最終用戶帶來麻煩,並且可能不被認為是流行的UX實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.