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();

猜你喜欢

转载自blog.csdn.net/qq_38261174/article/details/84966273
今日推荐