上圖是想實現的效果, 注意不是所有行一個顏色
首先把 listbox 的 DrawMode 屬性 改為 OwnerDrawFixed
然后 override listbox 的 函數 DrawItem 系統重命名為 listBox1_DrawItem
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground(); //先調用基類實現
if (e.Index < 0) //form load 的時候return
return;
//因為此函數每一個 listItem drawing 都要調用, 所以不能簡單的只寫e.Graphics.DrawString(listBox1.Items[e.Index].ToString(),e.Font, Brushes.Red, e.Bounds);
//那樣會造成所有item一個顏色
//這里是用item字符串是否包含某些詞決定的 , 不好
if (listBox1.Items[e.Index].ToString().Contains("error"))
{
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(),
e.Font, Brushes.Red, e.Bounds);
}
else if (listBox1.Items[e.Index].ToString().Contains("warn"))
{
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(),
e.Font, Brushes.Red, e.Bounds);
}
else
{
e.Graphics.DrawString(((ListBox)sender).Items[e.Index].ToString(),
e.Font, Brushes.Black, e.Bounds);
}
}
當前文章:c#實現ListBox每一列可以有各自的顏色-創新互聯
文章分享:http://www.yijiale78.com/article16/ccdhdg.html
成都網站建設公司_創新互聯,為您提供Google、小程序開發、網站改版、靜態網站、網站維護、移動網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯