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,呵呵,看完 了?休息一下嘛……
不過,看完了,你有什么意見,咱們共同分享一下啊,我是菜鳥,我不會!