取消winforms中父事件的子事件层次结构



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

Event 1
  |
  |--> if Event2 != null -> Event 2
  |--> if Event3 != null -> Event 3

但在Event 1中,当条件为true时,我有一个返回的if,但我的问题是,我不想激发Event 2Event 3,我该怎么做?

更新:

我的问题是,即使有Method1return;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:我会更好地解释这一点:这是一个具有textfieldbutton的控件,当按下按钮时,Event1被触发,并且在Event1的代码内是对Event2Event3的两个调用。当按下按钮时,会显示一个列表,以加载用户在文本字段中选择的内容。Event1是表示按下按钮的事件,Event2是表示用户在列表中选择的字段已加载到文本字段中的事件,而Event3是当文本字段发生更改时(当用户更改其在列表中的选择时)触发的事件。这就是为什么Event2Event3Event1内部希望能帮助大家了解工作流程。

试试这样的

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;
}

相关内容

  • 没有找到相关文章

最新更新