C# TabControl手動(dòng)觸發(fā)DrawItem的實(shí)現(xiàn)
當(dāng)需要重繪TabControl的背景顏色時(shí),有兩種方法。
方法一
網(wǎng)上有很多文章介紹,將tabControl的DrawMode屬性設(shè)為OwnerDrawFixed,然后在其DrawItem事件處理程序中重繪背景顏色。
private void tabControl1_DrawItem(object sender, DrawItemEventArgs e) { //標(biāo)簽header的背景 for (int i = 0; i < tabControl1.TabPages.Count; i++) { e.Graphics.FillRectangle(Brushes.White, (sender as TabControl).GetTabRect(i)); } //tabControl背景 e.Graphics.FillRectangle(Brushes.White, (sender as TabControl).ClientRectangle); }
方法二
當(dāng)將tabControl的ItemSize設(shè)為(0,1)以便隱藏標(biāo)簽title的時(shí)候,方法一的事件不會(huì)被觸發(fā),會(huì)導(dǎo)致背景顏色無法重繪,這時(shí)候可以使用以下代碼手動(dòng)執(zhí)行重繪。
private void ReDrawItem() { Graphics g = Graphics.FromHwnd(tabControl1.Handle); //tabPage標(biāo)簽header的背景 for (int i = 0; i < tabControl1.TabPages.Count; i++) { g.FillRectangle(Brushes.White, tabControl1.GetTabRect(i)); } //tabControl背景 g.FillRectangle(Brushes.White, tabControl1.ClientRectangle); }
到此這篇關(guān)于C# TabControl手動(dòng)觸發(fā)DrawItem的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)C# 手動(dòng)觸發(fā)DrawItem內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解ASP.NET中Identity的身份驗(yàn)證代碼
這篇文章主要介紹了ASP.NET Identity 的“多重”身份驗(yàn)證代碼,以及實(shí)現(xiàn)的原理講解,需要的朋友參考一下。2017-12-12字符串替換Replace僅替換第一個(gè)字符串匹配項(xiàng)
C#里面的String.Replace(string,string)方法替換的時(shí)候是替換所有的匹配項(xiàng),我們需要只替換第一個(gè)匹配項(xiàng),寫一個(gè)方法來實(shí)現(xiàn)這個(gè)功能2013-12-12ASP.NET總結(jié)C#中7種獲取當(dāng)前路徑的方法
本文主要介紹了7種獲取當(dāng)前路徑的方法,并做了代碼演示,分享給大家,感興趣的朋友可以參考一下。2016-03-03c#定時(shí)器和global實(shí)現(xiàn)自動(dòng)job示例
這篇文章主要介紹了c#定時(shí)器和global實(shí)現(xiàn)自動(dòng)job示例,大家參考使用吧2014-01-01C# Redis學(xué)習(xí)系列(二)Redis基本設(shè)置
這篇文章主要為大家分享了C# Redis學(xué)習(xí)系列教程第二篇, Redis基本設(shè)置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05C#使用CefSharp和網(wǎng)頁進(jìn)行自動(dòng)化交互的示例代碼
CefSharp 是一個(gè)用 C# 編寫的開源庫,它封裝了 Google Chrome 瀏覽器的 Chromium 內(nèi)核,CefSharp 允許開發(fā)者在其應(yīng)用程序中嵌入瀏覽器功能,從而能夠展示網(wǎng)頁內(nèi)容、執(zhí)行JavaScript代碼,本文給大家介紹了C#使用CefSharp和網(wǎng)頁進(jìn)行自動(dòng)化交互,需要的朋友可以參考下2024-07-07