【问题标题】:How to check all items when I click group title?单击组标题时如何检查所有项目?
【发布时间】:2012-11-06 07:56:37
【问题描述】:

我使用ObjectListView 列出所有项目。而且我不知道当我单击由 ObjectListView 生成的 Group 单元格标题时如何接收单击事件。

我想实现检查(或取消选中)单击组中所有项目的功能。


编辑:

我通过添加一个按钮来选中/取消选中所选项目来克服。 ObjectListView 将选择单击组的所有项目,因此我通过按钮调用检查/取消选中行为。


编辑:

GroupTaskClicked 事件不起作用。 ObjectListView的版本是v2.6.0(2012/10/20),用visual studio 2010。

好吧,GroupStateChanged 事件会触发,但它会触发不止一次。我会详细解释我的答案。

【问题讨论】:

  • 为什么不使用 ListViewItem?
  • 我使用了 ListView,它不适合我的需要。
  • 你能告诉我你想要完成什么吗?因为只要根据其组选择项目,它可以通过 ListViewItem 完成
  • 接收ObjectListView的Group单元格上的点击事件。如果我可以在 Group 单元格上收到 clicked 事件,那么可以完成以下任务。
  • 好吧。我不知道它在 ObjectListView 中是如何工作的。但我想这与 ListView 相同。当您单击列表视图中的组时,您应该尝试查看 SelectedIndexChages 事件,导致在 ListView 中,然后 SelectedItem 属性将填充这些组的项目。

标签: c# winforms objectlistview


【解决方案1】:

GroupStateChanged 将触发。我通过以下方法监听事件。

 private void olvList_GroupStateChanged(object sender, BrightIdeasSoftware.GroupStateChangedEventArgs e)
        {
            Trace.WriteLine("Name:" + e.Group.Header + "\r\nSelected:" + e.Group.Selected + "\r\nFocused:" + e.Focused + "\r\n");

        }

当我单击一个名为“MyClickGroup”的组单元格时,它将触发 2 个事件。

Name:MyClickGroup
Selected:True
Focused:False
Name:MyClickGroup
Selected:True
Focused:True

如果我单击名为“MyNewGroup”的组单元格,而首先单击另一个名为“MyClickGroup”的单元格,则会触发 4 个事件。

Name:MyClickGroup
Selected:True
Focused:False
Name:MyClickGroup
Selected:False
Focused:False
Name:MyNewGroup
Selected:True
Focused:False
Name:MyNewGroup
Selected:True
Focused:True

因此,GroupStateChanged 事件,其SelectedFocused 状态为True,表示当前选定和聚焦的组单元格。这就是我想要的关于组单元格上的单击事件。

【讨论】:

    猜你喜欢
    • 2016-12-29
    • 1970-01-01
    • 2012-04-29
    • 2010-12-02
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    相关资源
    最近更新 更多