【问题标题】:How do I handle a click event using the ObjectListView library?如何使用 ObjectListView 库处理单击事件?
【发布时间】:2021-01-07 02:34:58
【问题描述】:

我正在尝试使用 TreeListView,我看到了这篇文章:How to create a MultiColumn treeview like this in C# Winforms app?。 但是我不明白当我点击树节点时如何处理事件。 你能帮帮我吗?

我尝试将这样的事件添加到表单中:

private void treeListView_Click(object sender, EventArgs e){
    Debug.Print("HI");
}

但它不起作用。

感谢@Robert Harvey 的回答,我补充道

treeListView.CellClick += treeListView_CellClick; 进入FillTree方法,其中

private void treeListView_CellClick(object sender, BrightIdeasSoftware.CellClickEventArgs e)
        {
            Debug.Print("hi");
        }

【问题讨论】:

    标签: c# treelistview


    【解决方案1】:

    该帖子使用ObjectListView library。如果您下载该库的源代码,在 Visual Studio 中打开它并检查 Events.cs,您会在 TreeListView 的部分类中找到它:

    /// <summary>
    /// This event is triggered when user input requests the expansion of a list item.
    /// </summary>
    [Category("ObjectListView"),
    Description("This event is triggered when a branch is about to expand.")]
    public event EventHandler<TreeBranchExpandingEventArgs> Expanding;
    
    /// <summary>
    /// This event is triggered when user input requests the collapse of a list item.
    /// </summary>
    [Category("ObjectListView"),
    Description("This event is triggered when a branch is about to collapsed.")]
    public event EventHandler<TreeBranchCollapsingEventArgs> Collapsing;
    
    /// <summary>
    /// This event is triggered after the expansion of a list item due to user input.
    /// </summary>
    [Category("ObjectListView"),
    Description("This event is triggered when a branch has been expanded.")]
    public event EventHandler<TreeBranchExpandedEventArgs> Expanded;
    
    /// <summary>
    /// This event is triggered after the collapse of a list item due to user input.
    /// </summary>
    [Category("ObjectListView"),
    Description("This event is triggered when a branch has been collapsed.")]
    public event EventHandler<TreeBranchCollapsedEventArgs> Collapsed;
    

    该文件中还为 ObjectListView 类本身定义了一堆事件,包括这个:

    /// <summary>
    /// Triggered when a cell is left clicked.
    /// </summary>
    [Category("ObjectListView"),
    Description("This event is triggered when the user left clicks a cell.")]
    public event EventHandler<CellClickEventArgs> CellClick;
    

    【讨论】:

    • 好的,但是如果我像这样添加到表单代码 objectListView 的事件: private void treeListView_Click(object sender, EventArgs e) { Debug.Print("ciao"); } 它不起作用
    • 请注意,您可以整天编写事件处理程序,但您仍然必须将它们连接起来才能让它们工作。类似MyTreeView.CellClick += new EventHandler(CellClick); 的内容,请参阅here 了解有关处理事件的更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    相关资源
    最近更新 更多