1. 程式人生 > >C#:控制元件ListView 的使用

C#:控制元件ListView 的使用

1.介紹

使用ListVIew顯示資料,需要先給ListView設定列的數量及列名,之後才能新增資料。如果需要對資料進行分組,則在設定列名之前,可以先把組名確定新增。

private void initListView() {
            //新增分組
            ListViewGroup one_group = new ListViewGroup();
            one_group.Header = "第一組";
            one_group.HeaderAlignment = HorizontalAlignment.Left;
            ListViewGroup two_group = new ListViewGroup();
            two_group.Header = "第二組";
            two_group.HeaderAlignment = HorizontalAlignment.Center;
            this.listview.Groups.Add(one_group);
            this.listview.Groups.Add(two_group);
            this.listview.ShowGroups = true; // 顯示分組

            this.listview.View = View.Details;//listview顯示形式,它有多種顯示形式
            this.listview.Columns.Add("id",100,HorizontalAlignment.Left); //新增一個列
            this.listview.Columns.Add("name",100,HorizontalAlignment.Left); //新增一個列
            this.listview.BeginUpdate();   //在進行大量的資料繫結時,可開啟,防止閃爍
            for (int i = 0; i < 10; i++) {
                ListViewItem lvi = new ListViewItem();
                lvi.ImageIndex = i; //圖片繫結
                lvi.Text = "item  " + i; //第0列 id
                lvi.SubItems.Add("第1列"); //第一列 nname
                if (i < 5) {
                    lvi.ForeColor = Color.Blue; //設定顏色
                    lvi.Group = one_group;  // lvi 分組
                }
                else {
                    lvi.ForeColor = Color.Red; //設定顏色
                    lvi.Group = two_group;  // lvi 分另外一組
                }

                this.listview.Items.Add(lvi); //Listview新增 item

            }
            this.listview.EndUpdate();  //大量資料繫結完,結束
            //控制行高
            ImageList imagelist = new ImageList();
            imagelist.ImageSize = new Size(20,20);
            imagelist.Images.Add("zero",Properties.Resources.onw);
            imagelist.Images.Add("zero", Properties.Resources.onw);
            listview.SmallImageList = imagelist; //與圖片顯示繫結
            listview.CheckBoxes = true;  //有勾選框
            
        }

上面我們設定了勾選框,如果想要得到所有勾選的ListViewItem的資訊,該如何?

            String s = "";
            foreach (ListViewItem item in listview.Items) {
                if (item.Checked == true) {
                    String s1 = item.SubItems[0].Text;
                    s += s1 + "\n";
                }
            }


還可以用如下程式碼與上面等價:獲取第0列的內容

            String s = "";
            foreach (ListViewItem item in listview.CheckedItems) {
                    String s1 = item.SubItems[0].Text;
                    s += s1 + "\n";
            }
            this.showresult.Text = s;

如果想要移除某一項 ListViewItem 的資訊,該如何?

this.listview.Items.RemoveAt(5); //移除某一項,或直接用listview.Items.Remove(lvi);
            

移除所有資料,且把列名也刪除掉用clear()

this.listview.Clear();