C# 是否从winforms中的父事件取消子事件层次结构?
我有一个winforms应用程序,在代码的一部分中,我有一个事件,在该事件中可以触发两个事件,如下所示:C# 是否从winforms中的父事件取消子事件层次结构?,c#,winforms,events,event-handling,C#,Winforms,Events,Event Handling,我有一个winforms应用程序,在代码的一部分中,我有一个事件,在该事件中可以触发两个事件,如下所示: Event 1 | |--> if Event2 != null -> Event 2 |--> if Event3 != null -> Event 3 但是在事件1中,我有一个if,当条件为true时返回,但我的问题是我不想触发事件2或事件3,我怎么做 更新: 我的问题是,即使使用返回
Event 1
|
|--> if Event2 != null -> Event 2
|--> if Event3 != null -> Event 3
但是在事件1
中,我有一个if,当条件为true
时返回,但我的问题是我不想触发事件2
或事件3
,我怎么做
更新:
我的问题是,即使使用返回在Method1
中的Event2
和/或Event3
仍在触发
我可以展示一些伪代码:
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());
}
更新2:
我将更好地解释这一点:
这是一个控件,它有一个文本字段
和一个按钮
,当按下按钮时Event1
被激发,在Event1
的代码中有两个对Event2
和Event3
的调用。
按下按钮时,将显示一个列表,以加载用户在文本字段中选择的内容Event1
是表示按钮按下的事件,Event2
是表示用户在列表中选择的字段已加载到textfield中的事件,Event3
是当textfield更改时(当用户更改其在列表中的选择时)触发的事件。
这就是为什么Event2
和Event3
在Event1
希望有助于理解工作流程。尝试类似的方法
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;
}
你能给我们看一些代码吗?在你的问题中需要更多的澄清。事件2和事件3的代码在哪里?你真正想要的是什么?我已经更新了我的问题,希望它能帮助我们现在在什么情况下你想要取消事件2和事件3?在伪代码中,您没有为事件2调用代码?条件在Method1
中,有一个条件必须取消对Event2
和Event3
方法CodeForEvent1
中的调用<必须执行code>CodeForEvent1
,但不能执行Event2
和Event3