有60多个CheckBox,有没一种拖动方式快速选择连续的checkbox?

.Net技术 码拜 10年前 (2015-05-10) 1379次浏览 0个评论
 

比如要选前面20个,或者中间 10-35 的一段,或者后面的20个,怎么样可以快速选择?
我用的是wpf

10分
引用 楼主 qq_27420597 的回复:

比如要选前面20个,或者中间 10-35 的一段,或者后面的20个,怎么样可以快速选择?
我用的是wpf

先想想怎么会一个画面有60个CheckBox 有这个需求出现 @@?

是什么功能会要一次显示60个然让挑

通常应该会依分页显示
然后做全选或全部选 ?

如果硬要的话可以拉两个 textBox让 User输入范围,然后再回圈内判断第几笔 = Textbox输入的范围做打勾

10分
不知道有没有现成的,可以提供个思路:
在MouseDown事件中记录初始点Point
在DragMove事件中增加全局标志位,以标志此次是拖动事件
在MouseUp事件中根据DragMove标志位,判断是清除初始点Point,还是记录结束点Point,如果有结束点,根据两个结束点,获取这个矩阵内的所有CheckBox
5分

那你用代码实现拉。输入范围,然后点确认呀。

5分
1.奇葩的需求(可能是特殊行业)
2.做出来后,把你自己当做用户,看见这么一大堆要去操作,什么心情啊
3.用事件去写
10分
建议做成多个分组,按组全选,全不选
实在要做的话,可以考虑做成 按住SHIFT,连续选取,这个比较容易实现。
噢,居然没有现成的东西。

现在就有那么多checkbox,这些checkbox的数值是从高到低排序的,客户就想可以批量选取某一段

5分
将这些checkbook控件放到一个数组里面,然后根据数组下标段选取
20分
CheckListBox
ListView
DataGridView
等集合控件试试,应该支持 ctrl shift 之类的连续选取的
10分
引用 6 楼 qq_27420597 的回复:

噢,居然没有现成的东西。

现在就有那么多checkbox,这些checkbox的数值是从高到低排序的,客户就想可以批量选取某一段

定义一个事件,监听当有两个checkbox被选中,事件触发,把两个checkbox之间的都选中

当然了,并非所有时候客户都需要批量选中,另外增加开关让用户选择是否要自动批量。

20分
引用 6 楼 qq_27420597 的回复:

噢,居然没有现成的东西。

现在就有那么多checkbox,这些checkbox的数值是从高到低排序的,客户就想可以批量选取某一段

这跟现成的静态布局控件毫无关系,这需要你编写程序。

例如说,你需要捕获“客户”的拉框选择操作(动态创建一个基于Rectangle或者半透明的Grid控件而开发的自定义的“框”控件),然后你需要对每一个checkbox进行“命中测试”来判断是不是在这个来框范围内,然后你需要将命中的所有checkbox高亮显示,然后你需要支持用户对这个“框”的拖动操作,拖动时对于(之前判断过并且记录到这个框控件的集合属性中)所有checkbox也进行相同偏移。最后支持用户“结束选择框”操作。

这基本上需要写50~100行代码,对于一般的程序员来说还是有点小复杂的。

引用 4 楼 cai3725 的回复:

1.奇葩的需求(可能是特殊行业)
2.做出来后,把你自己当做用户,看见这么一大堆要去操作,什么心情啊
3.用事件去写

不同开发平台的程序员,会有不同的需求。

WPF、silverlight之类的程序员,很自然地就会去设计一些2d、3d图形动画程序。例如用户界面布局工具、组态设计工具、GIS上图工具、工作流图设计工具、工艺图绘制工具、管道维修抢修上图工具、人潮分析和展示工具、(大屏幕的)领导决策指挥系统,等等等等…..。

而那些winform程序员,一般只是弄点OA的数据Grid增删改查(只是给最底层的数据录入人员使用)企业应用,或者做点最简单的基本几何图形的绘制的个人小练习。

5分
引用 11 楼 sp1234 的回复:
Quote: 引用 4 楼 cai3725 的回复:

1.奇葩的需求(可能是特殊行业)
2.做出来后,把你自己当做用户,看见这么一大堆要去操作,什么心情啊
3.用事件去写

不同开发平台的程序员,会有不同的需求。

WPF、silverlight之类的程序员,很自然地就会去设计一些2d、3d图形动画程序。例如用户界面布局工具、组态设计工具、GIS上图工具、工作流图设计工具、工艺图绘制工具、管道维修抢修上图工具、人潮分析和展示工具、(大屏幕的)领导决策指挥系统,等等等等…..。

而那些winform程序员,一般只是弄点OA的数据Grid增删改查(只是给最底层的数据录入人员使用)企业应用,或者做点最简单的基本几何图形的绘制的个人小练习。

哈哈, sp1234 很鄙视 winform 程序员啊

引用 11 楼 sp1234 的回复:
Quote: 引用 4 楼 cai3725 的回复:

1.奇葩的需求(可能是特殊行业)
2.做出来后,把你自己当做用户,看见这么一大堆要去操作,什么心情啊
3.用事件去写

不同开发平台的程序员,会有不同的需求。

WPF、silverlight之类的程序员,很自然地就会去设计一些2d、3d图形动画程序。例如用户界面布局工具、组态设计工具、GIS上图工具、工作流图设计工具、工艺图绘制工具、管道维修抢修上图工具、人潮分析和展示工具、(大屏幕的)领导决策指挥系统,等等等等…..。

而那些winform程序员,一般只是弄点OA的数据Grid增删改查(只是给最底层的数据录入人员使用)企业应用,或者做点最简单的基本几何图形的绘制的个人小练习。

WPF就比winform 高大上?

多谢大家的建议。
这个问题用DataGrid 解决了, DataGrid 的第一列是checkbox, 第二列为值。DataGrid 本身是可以拖动选择的.

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明有60多个CheckBox,有没一种拖动方式快速选择连续的checkbox?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!