您的位置首页  散文杂谈

checkbox 选中事件(winform checkbox选中触发事件)奔走相告

hello guys,今天的小白继续在努力码字分享。

checkbox 选中事件(winform checkbox选中触发事件)奔走相告

 

hello guys,今天的小白继续在努力码字分享我们会碰到这么一个场景,例如说需要一个控件来批量显示单据号,并且可以进行选择并获取选中的单据号进行下一步操作,Winform中可以实现这个功能的控件有ListBox,ListView,CheckListBox,DataGridView等。

今天我要分享的是CheckListBox的一些用法1、单击即可勾选CheckboxCheckListBox默认是鼠标单击Item时,只是选中了Item,需要再点击一下Item,才可以勾选Checkbox。

个人观点,在大部分使用场景中,这种使用体验并不好,所以在初始化这个控件的时候,我们可以设置CheckOnClick属性为true;this.checkedListBox1.CheckOnClick =

true;实际操作步骤:

2、点击全选如果列表的Item很多,这个时候要全选的话,一个个去点击是非常费劲的,我们可以增加一个全选按钮全选Item时,注意CheckListBox中的CheckBox是没有Checked属性的,我们需要用到GetItemChecked和SetItemChecked两个方法来实现这个功能。

具体代码如下://全选功能for (int i = 0; i < this.checkedListBox1.Items.Count; i++) { if (this.checkedListBox1.GetItemChecked(i) ==

false) this.checkedListBox1.SetItemChecked(i,true); }实际操作步骤:(我这里是用代码先增加一个Button,再写这个Button的Click事件,实际操作中可以直接拖拽一个控件,比较方便,后期维护也方便)

3、点击反选反选功能跟全选功能有相似之处,反选功能使用场景:需要在众多Item中剔除几个不要的,可以先选中这几个Item,然后反选中其他Item具体代码如下://反选功能for (int i = 0; i <

this.checkedListBox1.Items.Count; i++) { if (this.checkedListBox1.GetItemChecked(i) == true)

this.checkedListBox1.SetItemChecked(i, false); elsethis.checkedListBox1.SetItemChecked(i,true); }

实际操作步骤:

4、定位Item如果列表中的Item非常多,还会遇到一个情况,我想列表直接跳转到我想要选择的相应Item的那一页,而不是我一行行慢慢去找,这也是非常影响用户体验的一个小功能实际的代码也很简单,我增加了一个TextBox来输入想要查询的Item,和一个Button来触发定位功能。

int index= this.checkedListBox1.FindString(this.textBox1.Text); this.checkedListBox1.SelectedIndex = index;

实际的效果可以看动图:

这里也有个需要注意的点,官方文档中,对FindString的定义是:查找 ListBox 中以指定字符串开始的第一个项所以,FindString返回的index是列表中出现的第一个指定Item的索引,如果列表中有多个相同的Item,这个时候定位功能可能就不是很适合用了。

所以,如果想要列表中的Item是唯一的,在初始化数据的时候,就要增加一个是否重复的判断以上方式都是小编的一点拙见,如果各位有什么更好的方法,欢迎评论区指正小编感激不尽~如果各位觉得我写的对你有那么一点点帮助,可以随手点一下关注,之后我会继续努力的。

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186