【问题标题】:How to get selected objects in ObjectListView如何在 ObjectListView 中获取选定的对象
【发布时间】:2015-07-28 23:34:20
【问题描述】:

在读取 SelectedObjects 时,我在 TreeListView 中正确选择了对象,但是当使用 shift 键选择项目时它会失败。在这种情况下,我得到 SelectedObjects 和 SelectedIndices 的空列表,并且 SelectedIndex 返回 -1。

显示器正在显示正确的选择。

我尝试遍历树中的所有对象并使用 IsSelected 进行检查,但我也得到了空列表。

使用 ctrl 添加后,单击一些额外的项目,我会再次获得正确的选择。

在这种情况下,我怎样才能获得正确的选择?否则如何禁用移位选择?

使用 ObjectListView 2.8.1

【问题讨论】:

  • 它适用于我使用 SHIFT 选择。我连接了treeListView_SelectionChanged 事件并将treeListView.SelectedObjects 信息写入控制台。它正确地保存使用 SHIFT+left cick 选择的父对象和子对象。
  • 我用 2.7 和 2.8.1 测试过。也许它的一些设置......
  • 我已经用演示项目对其进行了测试,在该项目中我刚刚为 SelectedIndexChanged 添加了处理程序,并且使用 Shift 键得到了 SelectedObject 的空列表。除非这是一个错误的事件 (SelectionChanged),让我明天检查一下.

标签: c# objectlistview


【解决方案1】:

正如 Rev1.0 指出的那样,这是错误事件处理程序的问题。回复SelectionChanged 会给出正确的结果。不过我没有在文档中找到它。

使用SelectedIndexChanged 而不是SelectionChanged 的原因是,在我的情况下,表单由另一个应用程序托管,它不会引发Application.Idle 事件。然而,这可以通过CanUseApplicationIdle 属性轻松修复。这是一个很好的控制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多