C#中ListView用法實(shí)例
添加標(biāo)題
在 Winfrom 界面中添加一個(gè) ListView 組件,然后點(diǎn)擊右上角的箭頭,點(diǎn)擊編輯列

添加下面標(biāo)題,然后點(diǎn)擊確定

此時(shí) ListView 中還是一片空白,不能顯示這些標(biāo)題,在視圖這里選擇 Details

就會(huì)如下圖所示,雖然標(biāo)題出來(lái)了,內(nèi)容確實(shí)一塊白版,此時(shí)還是覺得 DataGridView 組件好用啊

顯示網(wǎng)格
此時(shí),表格只是一片空白,可以在屬性面板中設(shè)置,顯示網(wǎng)格,如下圖

這時(shí),就如下圖所示,效果就出來(lái)了,但是里面還是缺點(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)居然沒(méi)有數(shù)據(jù),這是什么鬼?

斷點(diǎn)看看,ListViewItem 數(shù)組索引 0 處居然是空的

用下面代碼測(cè)試了一下,效果同上一模一樣,在數(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í)也沒(méi)其他辦法了,有其他更好的寫法歡迎留言告訴我。

現(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Unity3D實(shí)現(xiàn)列表分頁(yè)效果
這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)列表分頁(yè)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
C#生成互不相同隨機(jī)數(shù)的實(shí)現(xiàn)方法
這篇文章主要介紹了C#生成互不相同隨機(jī)數(shù)的實(shí)現(xiàn)方法,文中詳細(xì)描述了C#生成互不相同隨機(jī)數(shù)的各個(gè)步驟及所用到的函數(shù),非常具有借鑒價(jià)值,需要的朋友可以參考下2014-09-09
C# dump系統(tǒng)lsass內(nèi)存和sam注冊(cè)表詳細(xì)
這篇文章主要介紹了C# dump系統(tǒng)lsass內(nèi)存和sam注冊(cè)表,在這里選擇 C# 的好處是體積小,結(jié)合 loadAssembly 方便免殺,希望對(duì)讀者們有所幫助2021-09-09
C# DataGridView綁定數(shù)據(jù)源的方法
這篇文章主要為大家詳細(xì)介紹了C# DataGridView綁定數(shù)據(jù)源的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09

