读书人

请教这种调用button_Click事件怎么区

发布时间: 2012-06-09 17:16:42 作者: rapoo

请问,这种调用button_Click事件如何区分
void work_1()
{
button1_Click(null,null);
}

void work_2()
{
button1_Click(null,null);
}

void work_3()
{
button1_Click(null,null);
}


三个方法引发button1点击事件,如何区分是哪个方法调用的?或者是手动点击的呢?

[解决办法]
send == null
[解决办法]
sender == null …………
[解决办法]
void work_1()
{
button1_Click(button1,null);
}

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

void work_3()
{
button1_Click(button1,null);
}
[解决办法]

C# code
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;        }    }}
[解决办法]
没法区分,不过是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值来区分
[解决办法]
你可以通过不同方法里面给sender传入不同的参数然后再处理函数里面进行区分


[解决办法]
自己传参,自己区分,
你传3个null值是没法区分的
[解决办法]
sender是object类型,可以是任何类型
[解决办法]
探讨
引用:

C# code
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 voi……

[解决办法]
如果是事件直接指定就再加上
C# code
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 来处理        }    }} 

读书人网 >C#

热点推荐