日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

C#中ListView用法實(shí)例_C#教程

作者:熊思雨 ? 更新時(shí)間: 2022-08-04 編程語(yǔ)言

添加標(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í)還是覺(jué)得 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é)束

原文鏈接:https://blog.csdn.net/qq_38693757/article/details/123017554

欄目分類
最近更新