[英]Draw icons on all tabs except the first one?
我在選項卡控件上繪制小x,以便可以將其關閉。
我不想關閉第一個選項卡,所以我不想在第一個選項卡上繪制x。
如何使其忽略第一個標簽?
var tabPage = this.tabBrowser.TabPages[e.Index];
var tabRect = this.tabBrowser.GetTabRect(e.Index);
tabRect.Inflate(-2, -2);
var closeImage = Properties.Resources.closeicon;
e.Graphics.DrawImage(closeImage, (tabRect.Right - closeImage.Width), tabRect.Top + (tabRect.Height - closeImage.Height) / 2);
TextRenderer.DrawText(e.Graphics, tabPage.Text, tabPage.Font, tabRect, tabPage.ForeColor, TextFormatFlags.Left);
我確實嘗試檢查tabBrowser.Count
存在多少個選項卡,但是當有多個選項卡時,這最終會在第一個選項卡上繪制。
我不想關閉第一個選項卡,所以我不想在第一個選項卡上繪制x。
?...只需檢查e.Index > 0
像這樣:
private void tabBrowser_DrawItem(object sender, DrawItemEventArgs e)
{
// always draw the tab text:
TextRenderer.DrawText(e.Graphics, tabPage.Text, tabPage.Font, tabRect, tabPage.ForeColor, TextFormatFlags.Left);
// only draw the X if we are not the first tab:
if (e.Index > 0)
{
var tabPage = this.tabBrowser.TabPages[e.Index];
var tabRect = this.tabBrowser.GetTabRect(e.Index);
tabRect.Inflate(-2, -2);
var closeImage = Properties.Resources.closeicon;
e.Graphics.DrawImage(closeImage, (tabRect.Right - closeImage.Width), tabRect.Top + (tabRect.Height - closeImage.Height) / 2);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.