簡體   English   中英

更改 tabControl 的 Tab 大小

[英]Change the Tab size of tabControl

我為TabControl重繪了Tab的圖形,但我無法設置它的Width

我想要的是Tab和圖標的文本包含在其大小中。

現在是這樣的:

標簽被覆蓋

我的代碼

private void tabControlForm_DrawItem(object sender, DrawItemEventArgs e)
{

   try
   {
       using (Brush br = new SolidBrush(TabColors[tabControlForm.TabPages[e.Index]]))
       {
           Rectangle rect = e.Bounds;

           rect.Width += 10;

           e.Graphics.FillRectangle(br, rect);
           SizeF sz = e.Graphics.MeasureString(tabControlForm.TabPages[e.Index].Text, e.Font);
           e.Graphics.DrawString(tabControlForm.TabPages[e.Index].Text, e.Font, Brushes.Black, rect.Left + (rect.Width - sz.Width) / 2, rect.Top + (rect.Height - sz.Height) / 2 + 1);

           using (var src = new Bitmap(System.Reflection.Assembly.GetEntryAssembly().GetManifestResourceStream("Castor.Gestionale.images.close-button.png")))
           {
              e.Graphics.DrawImage(src, rect.Right - 18, rect.Top + 10);
           }

           e.Graphics.DrawRectangle(Pens.DarkGray, rect);
           e.DrawFocusRectangle();
       }
   }
   catch {}
}

謝謝

實際上,您可以設置選項卡的大小,但不能單獨設置。

SizeMode = Fixed和一些合適的TabControl.Itemsize值的組合將創建任何大小,但始終相同..:

在此處輸入圖片說明

因此,為了單獨放大每個選項卡以使圖標適合您確實需要使用 Ian 的 'spacey' 方法..

不幸的是,沒有內置屬性來單獨控制TabControlTabPages'標簽頁眉的寬度(編輯:顯然,有TabControl.ItemSize來共同控制它。請參閱 TaW 的答案以修復所有標簽頁的寬度在選項卡控件下)。

但是您可以做的一個小技巧是在TabPage.Text的左側或右側提供額外的spaces ,以便為您的圖標提供足夠的空間。

無空間:

在此處輸入圖片說明

有 7 個空格:

在此處輸入圖片說明

放置你的圖標應該足夠了

嘗試增加“myTabControl.Padding.X”。 這個對我有用!

用它...

private void FrmSqlMain_Load(object sender, EventArgs e)
 {
     myTabControl.SizeMode = TabSizeMode.Normal;
     myTabControl.DrawMode = TabDrawMode.OwnerDrawFixed;
 }

我還想補充一件事。 起初,我嘗試添加空格,但似乎對我不起作用。 后來,我意識到我必須添加比平時更多的空格才能看到差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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