void work_1()
{
   button1_Click(null,null);
}void work_2()
{
   button1_Click(null,null);
}void work_3()
{
   button1_Click(null,null);
}
三个方法引发button1点击事件,如何区分是哪个方法调用的?或者是手动点击的呢?

解决方案 »

  1.   

    sender == null …………
      

  2.   

    void work_1()
    {
      button1_Click(button1,null);
    }void work_2()
    {
      button1_Click(button1,null);
    }void work_3()
    {
      button1_Click(button1,null);
    }
      

  3.   

    void work_1()
    {
        button1_Click("work_1", null);
    }void work_2()
    {
        button1_Click("work_2", null);
    }void work_3()
    {
        button1_Click("work_3", null);
    }private void button1_Click(object sender, EventArgs e)
    {
        string str;
        if ((str = sender as string) != null)
        {
            switch ((string)sender)
            {
                case "work_1":
                    break;
                case "work_2":
                    break;
                case "work_3":
                    break;
                default:
                    break;
            }
        }
    }
      

  4.   

    没法区分,不过是null还是button1,都被区分不了,你可以这样
    void work_1()
    {
      button1_Click(1,null);
    }void work_2()
    {
      button1_Click(2,null);
    }void work_3()
    {
      button1_Click(3,null);
    }
    因为参数sender是object类型,可以传入int值来区分
      

  5.   

    你可以通过不同方法里面给sender传入不同的参数然后再处理函数里面进行区分
      

  6.   

    自己传参,自己区分,
    你传3个null值是没法区分的
      

  7.   

    sender不是事件的发起者吗?怎么能是string呢?
      

  8.   

    sender是object类型,可以是任何类型
      

  9.   

    如果是事件直接指定就再加上
    private void button1_Click(object sender, EventArgs e)
    {
        string str;
        if ((str = sender as string) != null)
        {
            switch ((string)sender)
            {
                case "work_1":
                    break;
                case "work_2":
                    break;
                case "work_3":
                    break;
                default:
                    break;
            }
        }
        else
        {
            Button btn;
            if ((btn = sender as Button) != null)
            {
                // 判断 btn 来处理
            }
        }
    }