C# 添加多选功能(Java开发者学习C)

C# 添加多选功能(Java开发者学习C),c#,winforms,multi-select,C#,Winforms,Multi Select,我正在处理一段我继承的代码,并试图将其从只能选择一行扩展到可以选择多行 基本上,我正在处理的项目显示得像一个数据表。它包含OnSelectItem和OnMouseDown的方法,OnMouseDown检查单击是鼠标右键单击还是鼠标左键单击 通常,如何实现支持多选功能的功能?除了按住特定键外,是否通过识别鼠标单击来处理此问题?或者是否有其他方法来实现此类型的功能?您的评论表明您正在使用自定义控件。因此,适用于Microsoft提供的常规控件的答案可能根本不起作用 您应该能够使用已经列出的事件来处理

我正在处理一段我继承的代码,并试图将其从只能选择一行扩展到可以选择多行

基本上,我正在处理的项目显示得像一个数据表。它包含OnSelectItem和OnMouseDown的方法,OnMouseDown检查单击是鼠标右键单击还是鼠标左键单击


通常,如何实现支持多选功能的功能?除了按住特定键外,是否通过识别鼠标单击来处理此问题?或者是否有其他方法来实现此类型的功能?

您的评论表明您正在使用自定义控件。因此,适用于Microsoft提供的常规控件的答案可能根本不起作用

您应该能够使用已经列出的事件来处理此自定义控件中的多选功能


例如,您可以查看CheckedListBox控件。每行前面都有一个复选框。如果选中该框,则选中该行。如果这不是您要查找的选择类型,则可以在详细模式下查看ListView控件。它允许您设置选项,让用户高亮显示多行,使用CTRL和/或SHIFT修改鼠标单击影响选择的方式。

在我看来,就多选而言,除了鼠标单击,它还需要键盘支持

1在控件中,如果按shift键,然后按向上或向下箭头键,则行也会被选中

2我们还可以通过复选框列实现多选功能,我不确定这在您的情况下是否可行


3还有固定列的基本原理,当鼠标点击该列时,整行被选中D

您正在使用的控件是什么类型的?有些控件被设计为具有多选功能,而不需要花费太多精力。我还不太熟悉C术语,所以我不确定这个表显示的哪个部分是控件,或者显示本身是否是控件。类定义是publicclassearchlist:Control,我猜这意味着我要么扩展了控件,要么实现了控件接口。这是否至少有助于为您提供信息,为我提供找到您问题的实际答案所需的方向?根据提供的答案,我能够更全面地探索实现多选功能。这是这个问题的最初目的,因此,我将其标记为已回答。好的。我已经学会了在按住CTRL键进行项目选择时如何识别。我可以沿着这条路走多一点。您关于[查看]ListView控件细节模式的建议听起来可能有一些优点。我不知道你到底是什么意思。不幸的是,我甚至不确定细节模式是什么。对于C/Visual Studio来说还是太新了。打开一个新项目,插入一个ListView控件,然后将View属性设置为Details。