Winform中用Listview控件实现更新点击选择后已选择效果,如图:

代码如下:

private void frmSelect_Load(object sender, EventArgs e)
{
//初始化listSel数据
this.listSel.View = View.SmallIcon;
this.listSel.Items.Clear();
this.listSel.Groups.Clear();
ListViewGroup grpSel = new ListViewGroup();
grpSel.Name = "Select";
grpSel.Header = "已选择";
this.listSel.Groups.Add(grpSel);
//初始化listChoose数据
for (int i = 1; i < 21; i++)
{
ListViewItem lvi = new ListViewItem("第"+i.ToString()+"项");
lvi.Group = grpSel;
this.listChoose .Items.Add(lvi);
}
}
//点击选中事件(点击某一项时,在已选项中显示)
private void listChoose_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
if (e.IsSelected) //该事件会进入2次,前一项取消时进入,新一项点击时进入
{
ListViewItem lvi = e.Item.Clone() as ListViewItem; //不能在多处添加或插入项。必须首先将其从当前位置移除或将其克隆。
if (lvi!=null )
{
foreach (ListViewItem item in this.listSel.Items)
{
if (item.Text==e.Item.Text) //已存在的话 弹窗提示
{
MessageBox.Show(e.Item.Text+"已存在");
return;
}
}
this.listSel.Items.Add(lvi); //已选项中添加当前选中项
}
}
}
//点击已选择项,删除当前项
private void listSel_Click(object sender, EventArgs e)
{
if (this.listSel.SelectedItems.Count>0) //有已选项
{
this.listSel.Items.Remove(this.listSel.SelectedItems[0]); //删除已选项
}
}

至于为什么更新已选项的时候为什么用Click事件,请参看InvalidArgument=Value of '1' is not valid for 'index'

Listview控件实现已选择效果的更多相关文章

  1. PyQt学习随笔:ListView控件获取当前选择项的方法

    通过currentIndex()可以获取listView控件的当前选择元素,如果选择了多个,则可以通过selectedIndexes()来获取选择的元素,不过这两个函数返回的是元素数据,而不是索引编号 ...

  2. 使ListView控件中的选择项高亮显示

    实现效果: 知识运用: ListView控件的SelectedItems属性 //获取在ListView控件中被选中数据项的集合 public ListView.SelectedListViewIte ...

  3. ListView控件使用

    //ListView标头的代码创建方法. ColumnHeader title=new ColumnHeader(); //声明标头,并创建对象. title.Text="标头1名称&quo ...

  4. C# ListView控件使用简介

    ListView控件在各类程序中,具有数据显示直观,操作方便的特点.所以使用率极高,但控件的各类参数众多,很多初学者不易掌握,在此列举该控件的一些常用方法,属性,希望对初学者有一定帮助. //2005 ...

  5. ListView控件--2016年12月9日

    ListView属性 ListView   名称 说明 AccessKey 重写 WebControl.AccessKey 属性. 不支持将此属性设置 ListView 控件.(覆盖 WebContr ...

  6. winform listview控件

    ListView控件 1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设置 ...

  7. Windows程序==>>使用ListView控件展示数据

    使用ListView控件展示数据 01.ImageList控件 1.了解了解         属性 说明 Images 储存在图像列表中的所有图像 ImageSize 图像列表中图像的大小 Trans ...

  8. Android学习之基础知识五—ListView控件(最常用和最难用的控件)

    ListView控件允许用户通过上下滑动来将屏幕外的数据拉到屏幕内,把屏幕内的数据拉到屏幕外. 一.ListView的简单用法第一步:先创建一个ListViewTest项目,在activity_mia ...

  9. 安卓开发——ListView控件(初始化ListView、列表刷新、长按添加menu)

    前言: ListView——列表,它作为一个非常重要的显示方式,不管是在Web中还是移动平台中,都是一个非常好的.不开或缺的展示信息的工具.在Android中,ListView控件接管了这一重担,在大 ...

随机推荐

  1. C++11的资源管理:泛化的RAII

    RAII被认为是c++资源管理的最佳范式,但是c++98中用RAII必须为要管理的资源写一个类,这样一来RAII的使用就有些繁琐了.C++11有了lambda和function后,我们就可以编写泛化的 ...

  2. dnspod-sr内网轻量级DNS首选方案 - 运维生存时间

    dnspod-sr内网轻量级DNS首选方案 - 运维生存时间 undefined

  3. JavaScript运行机制浅析

    从一个简单的问题谈起: <script type="text/javascript"> alert(i); var i = 1; </script> 输出结 ...

  4. Maven浅析-3 Ant Vs Maven

    1.什么是Ant? Ant起源是为了取代构建工具Make.它可以跨系统,建立在Java和XML的基础上,而且非常程式化. Ant更像一个脚本工具,我们必须在Ant内显示地声明做任何事情.在<ta ...

  5. Yii2 behavior运用

    class ReturnDataTypeBehaviors extends Behavior { public $type = 'json'; public $pcOrMobile = 'pc'; / ...

  6. C语言 小游戏之贪吃蛇

    还记得非常久曾经听群里人说做贪吃蛇什么的,那时候大一刚学了C语言,认为非常难,根本没什么思路. 前不久群里有些人又在谈论C语言贪吃蛇的事了,看着他们在做,我也打算做一个出来. 如今大三,经过了这一年半 ...

  7. List<T>实体去重分组:

    实体去重分组: //实体类 public class Province { public string id { get; set; } public string name { get; set; ...

  8. Java的JDBC事务详解(转)

    事务的特性: 1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行. 2) 一致性(consistency):事务在完 ...

  9. careercup-链表 2.1

    2.1 编写代码,移除未排序链表中的重复节点. 不使用临时缓存: 如果不允许使用临时的缓存(即不能使用额外的存储空间),那需要两个指针, 当第一个指针指向某个元素时,第二个指针把该元素后面与它相同的元 ...

  10. mysql-distinct去重、mysql-group&nbsp;…

    一.MYSQL-distinct用法 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记 ...