新聞中心
“如何讓ListBox的Item項顯示多行?”,貌似沒有人給出直接的答案?,F(xiàn)在將一點個人C# ListBox經驗總結如下:

成都創(chuàng)新互聯(lián)是一家專業(yè)從事成都網站設計、網站制作、外貿營銷網站建設的網絡公司。作為專業(yè)網站設計公司,成都創(chuàng)新互聯(lián)依托的技術實力、以及多年的網站運營經驗,為您提供專業(yè)的成都網站建設、成都全網營銷及網站設計開發(fā)服務!
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; //設置項高,根據(jù)具體需要設置值
- //為每個項設置字體顏色
- //如果不需要可以不寫此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項高的倍數(shù)大一點點,不然ListBox在顯示時會有所變形!(例如:我的Item項高是60,而ListBox要一次顯示三項,所以設置為184)
以上就是關于C# ListBox控件重繪Item項的方法。
【編輯推薦】
- 解析C# Socket編程實現(xiàn)訪問網絡的原理
- C# switch語句簡單描述
- C# ServiceController類剖析
- C#抓取網頁程序的實現(xiàn)淺析
- C#內存管理詳細分析
分享文章:C# ListBox實現(xiàn)Item項顯示多行
當前路徑:http://fisionsoft.com.cn/article/dhgddej.html


咨詢
建站咨詢
