C# ListBox實現Item項顯示多行
“如何讓ListBox的Item項顯示多行?”,貌似沒有人給出直接的答案。現在將一點個人C# ListBox經驗總結如下:
1、首先選中拖至面板的ListBox控件,點屬性,選中DrawMode,改成OwnerDrawFixed或OwnerDrawVariable
2、還是在屬性工具中,切換到事件(就是那個閃電圖標),鼠標雙擊‘行為’菜單下的DrawItem,添加一個事件。
3、在‘窗體設計器生成的代碼’中就添加了一個新的事件
this.listBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.listBox1_DrawItem);
4、學過的朋友應該知道,這時代碼里會有一個 listBox1_DrawItem()的方法,在里面寫代碼吧。
- private void listBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
- {
- e.DrawBackground();
- Brush myBrush = Brushes.Black; //初始化字體顏色=黑色
- this.listBox1.ItemHeight=90; //設置項高,根據具體需要設置值
- //為每個項設置字體顏色
- //如果不需要可以不寫此switch
- switch (e.Index)
- {
- case 0:
- myBrush = Brushes.Red;
- break;
- case 1:
- myBrush = Brushes.Orange;
- break;
- case 2:
- myBrush = Brushes.Purple;
- break;
- case 4:
- myBrush = Brushes.White;
- break;
- }
- e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, myBrush,e.Bounds,null);
- //這句好象可以不要,自己試下
- e.DrawFocusRectangle();
- }
其實,看過MSDN的朋友應該知道了,MSDN里有類似的代碼,我不過修改了幾個地方,加入了項高this.listBox1.ItemHeight=90,可以輸入多行字符,這里要注意的是,整個ListBox的高應該是你設置的Item項高的倍數大一點點,不然ListBox在顯示時會有所變形!(例如:我的Item項高是60,而ListBox要一次顯示三項,所以設置為184)
以上就是關于C# ListBox控件重繪Item項的方法。
【編輯推薦】