有60多个CheckBox,有没有一种拖动方式快速选择连续的checkbox
有60多个CheckBox,有没一种拖动方式快速选择连续的checkbox?
比如要选前面20个,或者中间 10-35 的一段,或者后面的20个,怎么样可以快速选择?
我用的是wpf
------解决思路----------------------
先想想怎么会一个画面有60个CheckBox 有这个需求出现 @@?
是什么功能会要一次显示60个然让挑
通常应该会依分页显示
然后做全选或全部选 ?
如果硬要的话可以拉两个 textBox让 User输入范围,然后再回圈内判断第几笔 = Textbox输入的范围做打勾
------解决思路----------------------
不知道有没有现成的,可以提供个思路:
在MouseDown事件中记录初始点Point
在DragMove事件中增加全局标志位,以标志此次是拖动事件
在MouseUp事件中根据DragMove标志位,判断是清除初始点Point,还是记录结束点Point,如果有结束点,根据两个结束点,获取这个矩阵内的所有CheckBox
------解决思路----------------------

那你用代码实现拉。输入范围,然后点确认呀。
------解决思路----------------------
1.奇葩的需求(可能是特殊行业)
2.做出来后,把你自己当做用户,看见这么一大堆要去操作,什么心情啊
3.用事件去写
------解决思路----------------------
建议做成多个分组,按组全选,全不选
实在要做的话,可以考虑做成 按住SHIFT,连续选取,这个比较容易实现。
------解决思路----------------------
将这些checkbook控件放到一个数组里面,然后根据数组下标段选取
------解决思路----------------------
CheckListBox
ListView
DataGridView
等集合控件试试,应该支持 ctrl shift 之类的连续选取的
------解决思路----------------------
定义一个事件,监听当有两个checkbox被选中,事件触发,把两个checkbox之间的都选中
当然了,并非所有时候客户都需要批量选中,另外增加开关让用户选择是否要自动批量。
------解决思路----------------------
这跟现成的静态布局控件毫无关系,这需要你编写程序。
例如说,你需要捕获“客户”的拉框选择操作(动态创建一个基于Rectangle或者半透明的Grid控件而开发的自定义的“框”控件),然后你需要对每一个checkbox进行“命中测试”来判断是不是在这个来框范围内,然后你需要将命中的所有checkbox高亮显示,然后你需要支持用户对这个“框”的拖动操作,拖动时对于(之前判断过并且记录到这个框控件的集合属性中)所有checkbox也进行相同偏移。最后支持用户“结束选择框”操作。
这基本上需要写50~100行代码,对于一般的程序员来说还是有点小复杂的。
------解决思路----------------------
哈哈, sp1234 很鄙视 winform 程序员啊
比如要选前面20个,或者中间 10-35 的一段,或者后面的20个,怎么样可以快速选择?
我用的是wpf
------解决思路----------------------
先想想怎么会一个画面有60个CheckBox 有这个需求出现 @@?
是什么功能会要一次显示60个然让挑
通常应该会依分页显示
然后做全选或全部选 ?
如果硬要的话可以拉两个 textBox让 User输入范围,然后再回圈内判断第几笔 = Textbox输入的范围做打勾
------解决思路----------------------
不知道有没有现成的,可以提供个思路:
在MouseDown事件中记录初始点Point
在DragMove事件中增加全局标志位,以标志此次是拖动事件
在MouseUp事件中根据DragMove标志位,判断是清除初始点Point,还是记录结束点Point,如果有结束点,根据两个结束点,获取这个矩阵内的所有CheckBox
------解决思路----------------------
那你用代码实现拉。输入范围,然后点确认呀。
------解决思路----------------------
1.奇葩的需求(可能是特殊行业)
2.做出来后,把你自己当做用户,看见这么一大堆要去操作,什么心情啊
3.用事件去写
------解决思路----------------------
建议做成多个分组,按组全选,全不选
实在要做的话,可以考虑做成 按住SHIFT,连续选取,这个比较容易实现。
------解决思路----------------------
将这些checkbook控件放到一个数组里面,然后根据数组下标段选取
------解决思路----------------------
CheckListBox
ListView
DataGridView
等集合控件试试,应该支持 ctrl shift 之类的连续选取的
------解决思路----------------------
定义一个事件,监听当有两个checkbox被选中,事件触发,把两个checkbox之间的都选中
当然了,并非所有时候客户都需要批量选中,另外增加开关让用户选择是否要自动批量。
------解决思路----------------------
这跟现成的静态布局控件毫无关系,这需要你编写程序。
例如说,你需要捕获“客户”的拉框选择操作(动态创建一个基于Rectangle或者半透明的Grid控件而开发的自定义的“框”控件),然后你需要对每一个checkbox进行“命中测试”来判断是不是在这个来框范围内,然后你需要将命中的所有checkbox高亮显示,然后你需要支持用户对这个“框”的拖动操作,拖动时对于(之前判断过并且记录到这个框控件的集合属性中)所有checkbox也进行相同偏移。最后支持用户“结束选择框”操作。
这基本上需要写50~100行代码,对于一般的程序员来说还是有点小复杂的。
------解决思路----------------------
哈哈, sp1234 很鄙视 winform 程序员啊