欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2022年06月13日 14:13:12   作者:熊思雨  
我們經(jīng)常會(huì)在應(yīng)用程序中使用列表的形式來展現(xiàn)一些內(nèi)容,所以學(xué)好ListView是非常必需的,下面這篇文章主要給大家介紹了關(guān)于C#中ListView用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

添加標(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)文章

  • 使用Log4net進(jìn)行日志記錄

    使用Log4net進(jìn)行日志記錄

    本文詳細(xì)講解了使用Log4net進(jìn)行日志記錄的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • c# SQLHelper(for winForm)實(shí)現(xiàn)代碼

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

    數(shù)據(jù)連接池c# SQLHelper 實(shí)現(xiàn)代碼
    2009-02-02
  • 最新評論