1. 程式人生 > >C#中關於TabControl設定選項卡的大小問題

C#中關於TabControl設定選項卡的大小問題

   今天在使用Winform下的TabControl控制元件時,發現選項卡大小的調整不僅僅是設定寬度和高度那麼簡單,下面

對TabControl選項卡大小的設定進行總結顯示在頂部的選項卡為例):

     設定選項卡大小的第一步就是設定TabControl的SizeMode屬性,SizeMode屬性返回列舉TabSizeMode,

TabSizeMode有三個值,分別是Normal,FillToRight,Fixed。另外兩個與選項卡大小設定相關的屬性是

ItemSize和Padding,ItemSize顧名思義就是設定選項卡的大小的,Padding表示在選項卡文本/影象周圍新增的

額外空間。

    對於SizeMode = TabSizeMode.Normal,微軟給出的解釋是“調整每個選項卡的寬度以適應在選項卡上顯示

的內容,並且不調整一行中的選項卡大小以填充容器控制元件的整個寬度。”,在該選項下,ItemSize中的Width是不

起作用的,ItemSize的Height還可以調整選項卡的高度,Padding屬性的X值可以調整選項卡的寬度,Y值只能調

整選項卡中文字的位置,不能改變選項卡的高度值。 

     對於SizeMode = TabSizeMode.FillToRight,微軟給出的解釋是“每個選項卡的寬度都要調整,以便選項卡

的每行填充容器控制元件的整個寬度。這僅適用

於具有一行以上的選項卡控制元件。”在Multiline為false時,他與

SizeMode = TabSizeMode.Normal是一樣的,重點是Multiline為true時,比如第一行選項卡有三個,但是三個

選項卡沒有把容器控制元件填滿,SizeMode = TabSizeMode.Normal下沒填滿就沒填滿,但是SizeMode =

 TabSizeMode.FillToRight

下會調整選項卡的大小一直填滿。下圖是兩種情況的比較:

imageNormal

imageFillToRight

      對於SizeMode = TabSizeMode.Fixed,微軟給出的解釋是“控制元件中的所有選項卡具有相同的寬度。”這種應該最好理解,所有選項卡的大小通過

ItemSize來設定,Padding.X沒有作用,Padding.Y只能改變文字位置,不能改變選項卡大小。

最後用一個表總結一下:

SizeMode ItemSize.Width ItemSize.Height Padding.X Padding.Y Multiline=true
Normal 不起作用 起作用 起作用 只能調整選項卡中文字的位置
FillToRight 不起作用 起作用 起作用 只能調整選項卡中文字的位置 調整選項卡的大小填充容器控制元件的整個寬度
Fixed 起作用 起作用 起作用 只能調整選項卡中文字的位置

歡迎討論!!!