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

學無先后,達者為師

網站首頁 編程語言 正文

C#中ListView用法實例_C#教程

作者:熊思雨 ? 更新時間: 2022-08-04 編程語言

添加標題

在 Winfrom 界面中添加一個 ListView 組件,然后點擊右上角的箭頭,點擊編輯列

添加下面標題,然后點擊確定

此時 ListView 中還是一片空白,不能顯示這些標題,在視圖這里選擇 Details

就會如下圖所示,雖然標題出來了,內容確實一塊白版,此時還是覺得 DataGridView 組件好用啊

顯示網格

此時,表格只是一片空白,可以在屬性面板中設置,顯示網格,如下圖

?這時,就如下圖所示,效果就出來了,但是里面還是缺點東西

添加數據到表格中

不會添加數據怎么辦?直接從網上復制,如下:

private void Button_Test_Click(object sender, EventArgs e)
{
    //數據更新,UI暫時掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度
    this.listView1.BeginUpdate();
    //添加5行數據
    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);
    }
    //結束數據處理,UI界面一次性繪制。
    this.listView1.EndUpdate(); 
}

運行后,我們看看效果,what? 第一行序號居然沒有數據,這是什么鬼?

斷點看看,ListViewItem 數組索引 0 處居然是空的

用下面代碼測試了一下,效果同上一模一樣,在數組0處就是添加了一個默認空的數據進去

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)
{
    //數據更新,UI暫時掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度
    listView1.BeginUpdate();
    //添加5行數據
    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 + "行");
    }
    //結束數據處理,UI界面一次性繪制。
    listView1.EndUpdate(); 
}

這種寫法看著非常的淡疼,暫時也沒其他辦法了,有其他更好的寫法歡迎留言告訴我。

現在效果算是有了,但我想改變其中一個單元格的屬性怎么辦呢?

自定義其他屬性

例1:改變背景顏色,和字體顏色

private void Button_Test_Click(object sender, EventArgs e)
{
    //數據更新,UI暫時掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度
    listView1.BeginUpdate();
    //添加5行數據
    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;
        }     
    }
    //結束數據處理,UI界面一次性繪制。
    listView1.EndUpdate(); 
}

效果:

?其他的屬性就不作演示了,寫法差不多。

結束

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

欄目分類
最近更新