我正在使用TabControl,並且我有DrawFixed。我只想繪製標籤而不是它下面的面板。C#tabControl DrawFixed
如何刪除呢?
另外我想問一下,我可以更改標籤大小嗎?我有很長的文本,如果它被選中,我希望看到所有文本,但是如果它沒有激活,我希望看到它被裁剪。
我已經在繪製事件中跟隨,但它總是繪製相同大小的標籤。
if (e.State == DrawItemState.Selected)
{
e.Graphics.FillRectangle(Brushes.White, e.Bounds.Left, e.Bounds.Top, e.Bounds.Width, e.Bounds.Height);
}
else
{
e.Graphics.FillRectangle(Brushes.LightGray, e.Bounds.Left, e.Bounds.Top, e.Bounds.Width, e.Bounds.Height);
text = text.Length > 10 ? text.Substring(0, 10) + "..." : text;
}
e.Graphics.DrawString(text, e.Font, Brushes.Black, e.Bounds.Left + 17, e.Bounds.Top + 3);
在此先感謝。
我可以問使用OwnerDrawFixed的意圖嗎? TabControl是一個難以調整的控件,它使用了傳統的繪圖方法並且具有已知的引導錯誤。你也繼承和定製TabControl或只是使用它? –
@JCollins我正在繪製一些圖像。這是聊天窗口。有用戶可用性,名稱,它通過消息圖標和橙色背景指示新消息。我只有我自己的TabPages。 TabControl沒有變化。 – sczdavos
你在哪裏重寫抽獎事件? 如果您要重寫TabControl並創建自己的繼承控件,可以在構造函數中使用SetStyle(ControlStyles.UserPaint,True),然後重寫OnPaint和/或OnPaintBackground,然後您將擁有完全控制權。雖然那麼你將負責繪製標籤。 –