C# 是否从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,我怎么做 更新: 我的问题是,即使使用返回

我有一个winforms应用程序,在代码的一部分中,我有一个事件,在该事件中可以触发两个事件,如下所示:

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