希望在窗体加载事件中加载一个按钮点击事件 private void PhoneLoad(object sender, RoutedEventArgs e)
        {
          this.Button1.Click += new System.EventHandler(this.Button1_Click);
        }为什么会出现No overload for 'btn_Click' matches delegate 'System.EventHandler'

解决方案 »

  1.   

    不要写成“加载”,写成“注册”好吧?!写成加载,还以为凭空增加了一个事件。其实人家事件没变,你只是增加一个事件承接的处理程序。这个问题是因为this.Button1_Click的方法签名跟System.EventHandler方法签名不符合,编译器检查出来错误了。
      

  2.   

    btn_Click或Button1_Click方法的参数应该是object sender, EventArgs e
      

  3.   

    把你的Button1_Click方法贴出来,看看它的方法参数定义是否兼容于 (object sender, EventArgs e) 呢?
      

  4.   

    嗯,不一定要是这个,但是要兼容与它。例如需要有两个参数,第一个参数看起来随便什么都可以,第二个参数的类型一定是EventArgs类型或者从它继承的子类。
      

  5.   


    private void Button1_Click(object sender, RoutedEventArgs e)
            {            textBox.text="hello!"        }
    大概是这样应该如何传递呢
      

  6.   

    请看按钮事件,它是这样定义的:private void button1_Click(object sender, EventArgs e)
    你需要指定sender和e这两个参数的值.
      

  7.   

    this.Button1.Click += new System.EventHandler(this.Button1_Click(sender1,  e1);
      

  8.   

    sender1=new object();
    e1=new Eventargs();
      

  9.   


    private void Button1_Click(object sender, RoutedEventArgs e)
      {  textBox.text="hello!";  }可以具体一个实例麽 如果Button1_Click是这样的话 应该如何写sender1和e1
      

  10.   

    应该是这个'btn_Click' 函数的问题!
      

  11.   

    private ?你想,一个外部的对象去调用它,它怎么可能是private呢?!
      

  12.   

    private void PhoneLoad(object sender, RoutedEventArgs e)
      {
      this.Button1.Click += new System.RoutedEventHandler(this.Button1_Click);
      }没想到你是wpf/silverlight。既然是这个,那么这里你去模仿winfrom使用EventHandler是不对的。
      

  13.   

    哦大概命名控件也是另外一个:
    private void PhoneLoad(object sender, RoutedEventArgs e)
      {
      this.Button1.Click += new System.Windows.RoutedEventHandler(this.Button1_Click);
      }
      

  14.   

    谢谢 可以 为什么silverlight会有不同呢
      

  15.   

    你学学wpf就知道啥叫动态加事件了。。
      

  16.   

    wpf是基于com的,推荐你找一个100m大小的那个pdf学习文档,
      

  17.   

    WPF程序设计指南(扫描版).pdf  下载这个分给我吧哈哈,你的问题这里全解决