C# 需要了解事件如何在C语言中与委托一起工作#

C# 需要了解事件如何在C语言中与委托一起工作#,c#,events,delegates,C#,Events,Delegates,我无法理解代理如何处理C#中的事件 语法的形式是: 公共事件someName委托someName control.someName+=新控件.someNameDelegate(methodName) 那么它如何知道是什么事件(如鼠标点击等)触发了该方法呢。 我完全不知道这是怎么回事。 我知道该代理将调用methodName,但我不知道调用什么事件 [附加信息] 在上面的两行中,如果someName是ContentModified,那么代码将编译 在上面的两行中,如果someName是香蕉,则代码

我无法理解代理如何处理C#中的事件

语法的形式是:

公共事件someName委托someName

control.someName+=新控件.someNameDelegate(methodName)

那么它如何知道是什么事件(如鼠标点击等)触发了该方法呢。 我完全不知道这是怎么回事。 我知道该代理将调用methodName,但我不知道调用什么事件

[附加信息] 在上面的两行中,如果someName是ContentModified,那么代码将编译 在上面的两行中,如果someName是香蕉,则代码不会编译

但是,除了上面的第2行,ContentModified在代码中没有其他位置:


那么编译器是如何区分差异的呢?

例如,假设您创建了一个userControl,并且您的控件有一个按钮,当按钮文本发生变化时,您为它定义了一个事件。也就是说,您可以看到按钮文本在哪里更改,并在那里为其定义一个事件

 public event TextChangedEventHandler ItemTextChanged;
 public delegate void TextChangedEventHandler(object Sender);




 private void btnContent_Click(object sender, RoutedEventArgs e)
 {
      if (ItemTextChanged != null)
      {
           ItemTextChanged(txtbChildBtn);
      }
 }
同一个例子有另一个名字

public event ValueChangedEventHandler ItemValueChanged;
public delegate void ValueChangedEventHandler(object Sender);




private void btnContent_Click(object sender, RoutedEventArgs e)
{
   if (ItemValueChanged != null)
   {
       ItemValueChanged(sender);
   }
}
还是他妈的换钮

 public event FucosEventHandler FucosChanged;
 public delegate void FucosEventHandler(object Sender, DependencyPropertyChangedEventArgs e);

 private void btnContent_FocusableChanged(object sender, , DependencyPropertyChangedEventArgs e)
 {
      if (FucosChanged != null)
      {
           FucosChanged(sender, e);
      }
 }

什么知道是什么触发了这个方法?不清楚你称之为“它”是什么。也许你错过了角色提升活动?假设你知道委托,你已经知道了吗?事件句柄需要从EventArgs派生,委托应该有如下符号:void-OnEventHandling(对象发送者,EventArgs参数)看看这些教程:和。你使用什么技术(WinForms,WPF,UWP,ASP.NET,GTK?您可能也会发现这很有帮助:是的,但是您如何知道它是textchangedventhadler而不是textfontchangedventhadler或其他名称呢。有允许的名单吗?啊,我知道我在找什么了。它位于TextBoxBase的元数据中,例如公共静态只读路由事件TextChangedEvent;使用delegete关键字,您可以选择任何名称并创建任何类型的事件,而不受任何限制。@meyasm asadi您是对的,但我要找的是从哪里可以获得可用的事件类型。e、 是否有textbox可用的TextSpecialChar事件。元数据提供了这一点。