c# 實現 ListBox 每一列可以有各自的顏色

來源:互聯網
上載者:User

標籤:drawing   ems   ges   eve   turn   color   item   override   png   

是想實現的效果, 注意不是所有行一個顏色 

 

首先把  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 每一列可以有各自的顏色

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.