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