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,微軟給出的解釋是“每個選項卡的寬度都要調整,以便選項卡
的每行填充容器控制元件的整個寬度。這僅適用
SizeMode = TabSizeMode.Normal是一樣的,重點是Multiline為true時,比如第一行選項卡有三個,但是三個
選項卡沒有把容器控制元件填滿,SizeMode = TabSizeMode.Normal下沒填滿就沒填滿,但是SizeMode =
TabSizeMode.FillToRight
下會調整選項卡的大小一直填滿。下圖是兩種情況的比較:
對於SizeMode = TabSizeMode.Fixed,微軟給出的解釋是“控制元件中的所有選項卡具有相同的寬度。”這種應該最好理解,所有選項卡的大小通過
ItemSize來設定,Padding.X沒有作用,Padding.Y只能改變文字位置,不能改變選項卡大小。
最後用一個表總結一下:
SizeMode | ItemSize.Width | ItemSize.Height | Padding.X | Padding.Y | Multiline=true |
Normal | 不起作用 | 起作用 | 起作用 | 只能調整選項卡中文字的位置 | |
FillToRight | 不起作用 | 起作用 | 起作用 | 只能調整選項卡中文字的位置 | 調整選項卡的大小填充容器控制元件的整個寬度 |
Fixed | 起作用 | 起作用 | 起作用 | 只能調整選項卡中文字的位置 |
歡迎討論!!!