C#中ListView用法實(shí)例
添加標(biāo)題
在 Winfrom 界面中添加一個(gè) ListView 組件,然后點(diǎn)擊右上角的箭頭,點(diǎn)擊編輯列
添加下面標(biāo)題,然后點(diǎn)擊確定
此時(shí) ListView 中還是一片空白,不能顯示這些標(biāo)題,在視圖這里選擇 Details
就會(huì)如下圖所示,雖然標(biāo)題出來了,內(nèi)容確實(shí)一塊白版,此時(shí)還是覺得 DataGridView 組件好用啊
顯示網(wǎng)格
此時(shí),表格只是一片空白,可以在屬性面板中設(shè)置,顯示網(wǎng)格,如下圖
這時(shí),就如下圖所示,效果就出來了,但是里面還是缺點(diǎn)東西
添加數(shù)據(jù)到表格中
不會(huì)添加數(shù)據(jù)怎么辦?直接從網(wǎng)上復(fù)制,如下:
private void Button_Test_Click(object sender, EventArgs e) { //數(shù)據(jù)更新,UI暫時(shí)掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度 this.listView1.BeginUpdate(); //添加5行數(shù)據(jù) for (int i = 0; i < 5; i++) { ListViewItem lvi = new ListViewItem(); lvi.SubItems.Add("第1列,第" + i + "行"); lvi.SubItems.Add("第2列,第" + i + "行"); lvi.SubItems.Add("第3列,第" + i + "行"); lvi.SubItems.Add("第4列,第" + i + "行"); lvi.SubItems.Add("第5列,第" + i + "行"); this.listView1.Items.Add(lvi); } //結(jié)束數(shù)據(jù)處理,UI界面一次性繪制。 this.listView1.EndUpdate(); }
運(yùn)行后,我們看看效果,what? 第一行序號(hào)居然沒有數(shù)據(jù),這是什么鬼?
斷點(diǎn)看看,ListViewItem 數(shù)組索引 0 處居然是空的
用下面代碼測試了一下,效果同上一模一樣,在數(shù)組0處就是添加了一個(gè)默認(rèn)空的數(shù)據(jù)進(jìn)去
private void Form1_Load(object sender, EventArgs e) { ListViewItem litem = new ListViewItem(); for (int i = 0; i < 5; i++) { litem.SubItems.Add(i.ToString()); } Console.WriteLine(litem.SubItems.Count); }
找了一下資料,不知道怎么回事,但是我還是找到了解決方法:
private void Button_Test_Click(object sender, EventArgs e) { //數(shù)據(jù)更新,UI暫時(shí)掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度 listView1.BeginUpdate(); //添加5行數(shù)據(jù) for (int i = 0; i < 5; i++) { int column = i + 1; ListViewItem lvi = listView1.Items.Add("第1列,第" + column + "行"); lvi.SubItems.Add("第2列,第" + column + "行"); lvi.SubItems.Add("第3列,第" + column + "行"); lvi.SubItems.Add("第4列,第" + column + "行"); lvi.SubItems.Add("第5列,第" + column + "行"); } //結(jié)束數(shù)據(jù)處理,UI界面一次性繪制。 listView1.EndUpdate(); }
這種寫法看著非常的淡疼,暫時(shí)也沒其他辦法了,有其他更好的寫法歡迎留言告訴我。
現(xiàn)在效果算是有了,但我想改變其中一個(gè)單元格的屬性怎么辦呢?
自定義其他屬性
例1:改變背景顏色,和字體顏色
private void Button_Test_Click(object sender, EventArgs e) { //數(shù)據(jù)更新,UI暫時(shí)掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度 listView1.BeginUpdate(); //添加5行數(shù)據(jù) for (int i = 0; i < 5; i++) { int column = i + 1; ListViewItem lvi = listView1.Items.Add("第1列,第" + column + "行"); lvi.SubItems.Add("第2列,第" + column + "行"); lvi.SubItems.Add("第3列,第" + column + "行"); lvi.SubItems.Add("第4列,第" + column + "行"); lvi.SubItems.Add("第5列,第" + column + "行"); if (column % 2 == 0) { lvi.BackColor = Color.Red; lvi.ForeColor = Color.White; } else { lvi.BackColor = Color.Green; lvi.ForeColor = Color.Black; } } //結(jié)束數(shù)據(jù)處理,UI界面一次性繪制。 listView1.EndUpdate(); }
效果:
其他的屬性就不作演示了,寫法差不多。
結(jié)束
到此這篇關(guān)于C#中ListView用法的文章就介紹到這了,更多相關(guān)C# ListView用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Unity使用LineRender實(shí)現(xiàn)繪畫功能
這篇文章主要為大家詳細(xì)介紹了Unity使用LineRender實(shí)現(xiàn)繪畫功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07c#使用nsoup解析html亂碼解決方法分享 nsoup教程
NSoup是JSoup的Net移植版本。使用方法基本一致。如果項(xiàng)目涉及HTML的處理,強(qiáng)烈推薦NSoup。但是遺憾的是NSoup默認(rèn)的編碼是UTF-8,處理中文有亂碼,下面給出二種解決方法2014-01-01使用C#實(shí)現(xiàn)讀取系統(tǒng)配置文件的代碼實(shí)例講解
這篇文章主要介紹了使用C#實(shí)現(xiàn)讀取系統(tǒng)配置文件的代碼實(shí)例,使用到了ConfigurationManager類,需要的朋友可以參考下2015-12-12

c# SQLHelper(for winForm)實(shí)現(xiàn)代碼