我正在处理我继承的一段代码,并试图将其从只能选择一行扩展到能够选择多行。
从本质上讲,我正在使用的项目就像数据表一样显示。它包含“OnSelectItem”和“OnMouseDown”的方法,“OnMouseDown”检查单击是鼠标右键单击还是鼠标左键单击。
一般来说,支持多选功能的功能是如何实现的?除了按住特定键之外,它是通过识别鼠标点击来处理的,还是有不同的方法来实现这种类型的功能?
我正在处理我继承的一段代码,并试图将其从只能选择一行扩展到能够选择多行。
从本质上讲,我正在使用的项目就像数据表一样显示。它包含“OnSelectItem”和“OnMouseDown”的方法,“OnMouseDown”检查单击是鼠标右键单击还是鼠标左键单击。
一般来说,支持多选功能的功能是如何实现的?除了按住特定键之外,它是通过识别鼠标点击来处理的,还是有不同的方法来实现这种类型的功能?
您的评论表明您正在使用自定义控件。因此,适用于一般 Microsoft 提供的控件的答案可能根本不起作用。
您应该能够使用已列出的事件来处理此自定义控件中的多选功能。
例如,您可以查看 CheckedListBox 控件。它在每一行前面都有一个复选框。如果选中该框,则该行被“选中”。如果这不是您要查找的选择类型,那么您可以查看详细模式下的 ListView 控件。它允许您设置让用户突出显示多行的选项,使用 CTRL 和/或 SHIFT 来修改鼠标单击影响选择的方式。
就我而言,就多选而言,除了鼠标单击外,它还需要键盘支持
1)在控件中,如果我们按 shift 键,然后按向上或向下箭头键,那么行也会被选中
2)我们还可以通过复选框列实现多选功能,我不确定这是否可能在您的情况下
3)还有固定列的基础,鼠标点击该列整行被选中