button1.click += 事件1
button1.click += 事件2如果是点击界面上的button,他会继续往下走。。但是我现在想做成自动的,用timer去自动点击。。结果就发现调用button1_click(sender,e)后,事件1和事件2都不会被调用。。有点郁闷额。。

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Reflection;
    using System.ComponentModel;namespace ConsoleApplication1
    {
        class Button
        {
            private event EventHandler click;
            public event EventHandler Click
            {
                add { click += value; }
                remove { click -= value; }
            }        public void foo() { click(this, new EventArgs()); }
        }
        class Program
        {        
            static void Main(string[] args)
            {
                Button btn = new Button();
                btn.Click += new EventHandler(btn1_Click1);
                btn.Click += new EventHandler(btn1_Click1);
                btn.Click += new EventHandler(btn1_Click2);
                btn.Click += new EventHandler(btn1_Click3);
                Console.WriteLine("raise event by itself:");
                btn.foo();
                Console.WriteLine("raise event manually:");
                EventHandler eh = btn.GetType().GetField("click", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(btn) as EventHandler;
                eh.Invoke(null, new EventArgs());
            }        static void btn1_Click1(object sender, EventArgs e)
            {
                Console.WriteLine("1");
            }        static void btn1_Click2(object sender, EventArgs e)
            {
                Console.WriteLine("2");
            }        static void btn1_Click3(object sender, EventArgs e)
            {
                Console.WriteLine("3");
            }
        }
    }
      

  2.   

    不允许帖。。意思就是,我进了页面,需要点击一个按钮,这个按钮又会触发另一个按钮的事件,但是现在我用timer去点击这个按钮,它却不会触发另一个事件了。。就是这个问题。
    嗯,我就是想他挨个执行。。但是现在我调用开头的那个,他却不会继续往下调用了。
    和这个类似,就是调用完btn的click后(虽然现在你没有写),只有btn的click事件被执行了,其他的btn1_Click1,btn1_Click2,btn1_Click3都不会被执行
      

  3.   

    你需要的是 btn.PerformClick(); 之类的方法调用
      

  4.   

    直接在 click1 事件之后 自己 调click2 事件呗
      

  5.   

    btn1_Click1(null,null)
    btn1_Click2(null,null)
    btn1_Click3(null,null)
      

  6.   

    这个也好!就是麻烦点,得到所有事件,依次调用。
    oh! so good!就是这个,太感谢了。。