「Winform开发小技巧05」批量操作单号-CheckListBox

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

我们会碰到这么一个场景,例如说需要一个控件来批量显示单据号,并且可以进行选择并获取选中的单据号进行下一步操作,Winform中可以实现这个功能的控件有ListBox,ListView,CheckListBox,DataGridView等。

今天我要分享的是CheckListBox的一些用法。

1、单击即可勾选Checkbox

CheckListBox默认是鼠标单击Item时,只是选中了Item,需要再点击一下Item,才可以勾选Checkbox。个人观点,在大部分使用场景中,这种使用体验并不好,所以在初始化这个控件的时候,我们可以设置CheckOnClick属性为true;

this.checkedListBox1.CheckOnClick = true;

实际操作步骤:

「Winform开发小技巧05」批量操作单号-CheckListBox


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事件,实际操作中可以直接拖拽一个控件,比较方便,后期维护也方便)

「Winform开发小技巧05」批量操作单号-CheckListBox


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);
     else
         this.checkedListBox1.SetItemChecked(i,true);
}

实际操作步骤:

「Winform开发小技巧05」批量操作单号-CheckListBox


4、定位Item

如果列表中的Item非常多,还会遇到一个情况,我想列表直接跳转到我想要选择的相应Item的那一页,而不是我一行行慢慢去找,这也是非常影响用户体验的一个小功能。

实际的代码也很简单,我增加了一个TextBox来输入想要查询的Item,和一个Button来触发定位功能。

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

实际的效果可以看动图:

「Winform开发小技巧05」批量操作单号-CheckListBox

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


以上方式都是小编的一点拙见,如果各位有什么更好的方法,欢迎评论区指正。小编感激不尽~

如果各位觉得我写的对你有那么一点点帮助,可以随手点一下关注,之后我会继续努力的。[加油]

展开阅读全文

页面更新:2024-06-03

标签:单号   拙见   码字   感激不尽   单据   下一步   初始化   控件   单击   批量   属性   场景   努力   操作   代码   功能   方法   数码   列表

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top