簡體   English   中英

使用Winforms在C#中以編程方式分別調整選項卡的大小

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM