C# listbox項目列表item屬性自定義方法(背景,前景,字體等等)


C# listbox項目列表item屬性自定義方法(背景,前景,字體等等)

研究了一下午,想在listbox列表中更改選擇項的字體顏色,以突出顯示,屬性里面肯定是沒有的,找了半天,原來有個listBox1_DrawItem事件,可是人家是初始化時候自動調用的,我們基本沒法控制(用.refresh())好像可以間接調用……

private void listBox1_DrawItem(objectsender, DrawItemEventArgs e)中, 可以看到DrawItemEventArgs這個類,其實他是對listBox1某一項的屬性的打包,如字體,位置等,而在該事件代碼中的關鍵語句e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), e.Bounds,strFormat); 其實就是Graphics對象的DrawString方法,而參數e中的Graphics是如何來的呢。我們接着分析DrawItemEventArgs這個類,他既然是對listBox1某一項的屬性的打包,那么我估計其中的Graphics對象就是由listBox1.creatgraphics而來的。好了,到此我們就可以自定義重繪listbox某項的函數了,可任意調用的哦!

關鍵代碼如下:

Graphics aa = listBox1.CreateGraphics();

aa.DrawString(listBox1.Items[1].ToString(),listBox1.Font, new SolidBrush(listBox1.ForeColor), listBox1.GetItemRectangle(1));

修改DrawString中的一些參數,是不是就能得到你想要的!

當然你還可以調用Graphics的其他一些方法,如填充一下,背景前景等等……

真是天高任鳥飛,洞深任你X,呵呵,看完 了?休息一下嘛……

不過,看完了,你有什么意見,咱們共同分享一下啊,我是菜鳥,我不會!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM