我有一个winforms应用程序,在我的代码的一部分中,我有一个事件,在该事件内可以分解两个事件,如下所示:
Event 1
|
|--> if Event2 != null -> Event 2
|--> if Event3 != null -> Event 3
但在Event 1
中,如果条件为true
,我会有一个返回,但我的问题是我不想解雇Event 2
或{ {1}},我该怎么做?
更新
我的问题是即使使用Event 3
return;
,Method1
和/或Event2
仍在触发
我可以显示一些伪代码:
Event3
更新2 :
我会更好地解释一下:
这是一个具有private void event1(object sender, EventArgs e)
{
Method1();
}
private void Method1()
{
if(condition)
return;
//more stuff
}
private void CodeForEvent1()
{
//some stuff...
if(Event2 != null)
Event2(this, new EventArgs());
if(Event3 !- null)
Event3(this, new EventArgs());
}
和textfield
的控件,当按下按钮时button
被触发,Event1
代码内的两个调用{{1} }和Event1
。
按下按钮时,将显示一个列表以加载用户在文本字段中选择的内容。 Event2
是表示按下按钮的事件,Event3
表示用户在列表中选择的字段已加载到文本字段中,而Event1
是表示该事件的事件文本字段更改时触发(当用户更改列表中的选择时)。
这就是Event2
和Event3
在Event2
内的原因
希望有助于理解工作流程。
答案 0 :(得分:0)
尝试这样的事情
private void event1(object sender, EventArgs e)
{
if(Method1())
{
e.cancel;
return;
}
else
{
if(Event2 != null)
{ Event2(this, new EventArgs());}
if(Event3 != null)
{Event3(this, new EventArgs());}
}
}
private void event2(object sender, EventArgs e)
{
// your stuff
}
private void event3(object sender, EventArgs e)
{
//your stuff
}
private bool Method1()
{
if(Your_condition_is_Matched)
{
return true;
}
return false;
}