gpt4 book ai didi

c# - c# 中的事件处理程序 - 语法/模式

转载 作者:太空狗 更新时间:2023-10-29 20:53:19 26 4
gpt4 key购买 nike

我是 C# 的新手,如果这是一个菜鸟问题,我深表歉意。我试图弄清楚在 C# 中处理事件的语法或模式。

所以我在表单中有一个 Form 对象 Form1 和一个 Button button1。我在 Form1.cs 中使用如下方法处理 Click 事件:

private void button1_Click(object sender, EventArgs e)
{
Debug.WriteLine("click!");
}

效果很好。现在在另一种形式 Form2 中,我有一个 TreeView treeView1,我想处理 BeforeExpand 事件。所以我假设它会是:

private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
{
Debug.WriteLine("Hello!");
}

这实际上是行不通的:当我展开一个节点时,这个方法永远不会被调用。但是几个 SO 答案暗示这做到这一点的方法,例如这 one .

无论如何,我找到了一种对我有用的替代方法。在表单构造函数中绑定(bind)事件处理程序,如下所示:

treeView1.BeforeExpand += new TreeViewCancelEventHandler(anyMethodNameYouLike);

那么这两种方法有什么区别呢?为什么 _event 语法不适用于 TreeView ?事件类型之间有什么区别吗?

谢谢

最佳答案

我假设您在 Visual Studio 设计器中双击了按钮。 button1_Click 处理程序会自动添加,就像您手动创建 BeforeExpand 处理程序一样。

检查你的 Form1.Designer.cs 文件,你会发现这样一行:

this.button1.Click += new System.EventHandler(this.button1_Click);

关于c# - c# 中的事件处理程序 - 语法/模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8056565/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com