列表视图ListView
ListView控件的常用属性属性说明Name控件的名称Dock控件在父容器中的停靠方式Items包含控件中所有项的集合Columns控件中显示的所有列标题的集合View控件的显示视图LargeImageList当控件以大图标视图显示时使用的ImageListSmallImageList当控件以小图标视图显示时使用的ImageListGridLines在包含控件中的行和列之间是否显示网格线MultiSelect是否可以选择多项SelectedItems获取在控件选定的项FullRowSelect单击某项是否选择其所有子项ListView控件的常用方法方法说明Clear从控件中移除所有项和列清空ListViewListView控件的常用事件事件说明Click在单击ListView控件时触发SelectedIndexChanged当选定项发生更改时触发ListView控件具有5种显示视图由View属性设置View属性的值及说明见下表属性值说明Details详细视图标准的二维表格第一行为表头LargeIcon默认值大图标每一项显示为一个大图标SmallIcon小图标每一项显示为一个小图标List列表每项显示一行Tile平铺显示大图标并在右侧显示详细信息1详细视图Details2大图标LargeIcon3小图标SmallIcon4列表List5平铺TileListView的结构1ListView控件可以展示多项数据Items属性表示所有项的集合。2其中每一项均为ListViewItem对象。3每个ListViewItem对象中包含SubItems属性表示该项中所有子项的集合。4其中每个子项均为ListViewSubItem对象。一、给ListView添加删除项目示例使用ListView控件展示游戏人物的信息。采用两种方法分别实现此功能1使用ListView编辑器添加删除项。2使用代码为ListView添加删除项。使用ListViewItem集合编辑器添加删除项实现步骤1创建窗体并向其中拖入ListView控件2设置ListView控件的Dock属性在父容器中停靠。3向ListView控件中添加删除列点击右上角三角编辑列。4设置ListView控件的显示视图为Detail此时可以看到列标题5向ListView控件中添加删除项点击右上角三角编辑项6添加ListViewItem项目在text属性中设置第一列内容在SubItems里面设置后续列内容。注意如果该项数据有图片1需要拖入两个ImageList控件分别存储大图标和小图标的图片。2点击ListView控件右上角三角使用LargeImageList\SmallImageList属性将ListView控件与两个ImageList控件关联。3然后直接在该项ListViewItem上设置ImageIndex属性设置图片的索引。特别注意如果ListView与ImageList关联ListView的Detail视图中的行高会随着小图标视图的ImageList的图像高度而改变。而且取消与ImageList的关联后也无法还原此时可以通过设置ImageList的图像大小来控制行高。使用代码为ListViewItem添加项实现步骤1创建窗体并向其中拖入ListView控件2设置ListView控件的Dock属性在父容器中停靠name属性为lvTimi。3向ListView控件中添加列点击右上角三角编辑列。4设置ListView控件的显示视图为Detail此时可以看到列标题。5在窗体加载时编写代码为ListView添加项。private void Form1_Load(object sender, EventArgs e) { //创建ListViewItem对象设置text值第一列的值 ListViewItem item1 new ListViewItem(安琪拉); item1.Name itemAjl; //设置当前项的名字 item1.ImageIndex 0; //设置图标索引 //设置除第一列外其他列数据 item1.SubItems.Add(超弱); item1.SubItems.Add(中等); item1.SubItems.Add(超强); item1.SubItems.Add(难); this.lvTimi.Items.Add(item1); //下面同理添加其他项 //...... }使用代码为ListViewItem删除项//直接通过ListViewItem对象名删除 this.lvTimi.Items.Remove(item1); //通过索引小标删除 this.lvTimi.Items.RemoveAt(0); //通过键值对中的键删除此处的键就是ListViewItem对象的name this.lvTimi.Items.RemoveByKey(itemAjl);二、响应事件获取选中项目内容。设置FullRowSelect属性为true保证单击某项整行选中效果选择ListView控件的DoubleClick双击事件,编写如下代码ListViewItem item this.lvTimi.SelectedItems[0]; if (item null) return; string result ; result 名字: item.Text \n; result 生存能力: item.SubItems[1].Text \n; result 攻击伤害: item.SubItems[2].Text \n; result 技能效果: item.SubItems[3].Text \n; result 上手难度: item.SubItems[4].Text \n; MessageBox.Show(result);三、结合右键实现删除以及视图切换拖入ConTextMenuStrip控件制作如下菜单并设置ListView控件的ContextMenuStrip属性用来关联ListView控件和ContextMenuStrip控件删除菜单响应代码private void 删除ToolStripMenuItem_Click(object sender, EventArgs e) { if (this.lvTimi.SelectedItems.Count 0) { MessageBox.Show(您没有选中项目!); return; } ListViewItem item this.lvTimi.SelectedItems[0]; this.lvTimi.Items.Remove(item); }各种视图菜单响应代码private void 大图标ToolStripMenuItem_Click(object sender, EventArgs e) { this.lvTimi.View View.LargeIcon; } private void 小图标ToolStripMenuItem_Click(object sender, EventArgs e) { this.lvTimi.View View.SmallIcon; } private void 详细ToolStripMenuItem_Click(object sender, EventArgs e) { this.lvTimi.View View.Details; } private void 列表ToolStripMenuItem_Click(object sender, EventArgs e) { this.lvTimi.View View.List; } private void 平铺ToolStripMenuItem_Click(object sender, EventArgs e) { this.lvTimi.View View.Tile; }