从方法中打破onclick事件

时间:2013-01-13 18:27:03

标签: c# events break

按钮' OnClick事件被调用:

private void vkb7_Click_1(object sender, EventArgs e)
{
    //method
    button_start(object sender);

    // do stuff 2
}

触发了一些方法:

private void button_start(object sender)
{
    bool some = true;
    if (some)
    {
        return; // I'd also like to break "button click"
    }
}

我想打破"按钮点击"方法中的事件 - 我该怎么做?

4 个答案:

答案 0 :(得分:3)

简单,让button_start()返回一个布尔值:

private bool button_start(object sender)
{
   bool some = ...;
   return some;
}


private void vkb7_Click_1(object sender, EventArgs e)
{
  //method
  if (button_start(object sender))
    return;

  // do stuff 2
}

答案 1 :(得分:0)

如果您在button_start确定是否应在vkb7_Click_1中执行操作,请考虑让button_start返回bool,然后使用vkb7_Click_1中的返回值。

另一方面,如果您在button_startthrow an exception中遇到错误情况。

答案 2 :(得分:0)

你不能真正“阻止”事件,因为事件已被解雇。但是,您可以根据结果手动处理点击。

private void vkb7_Click_1(object sender, EventArgs e)
{
    bool result = button_start(sender);

    if (result)
        DoSomething();
    else
        DoSomethingElse();
}

private bool button_start(object sender)
{
    bool some = true;

    if (some)
        return false;

    return true;
}

答案 3 :(得分:0)

首先,将button_start的返回类型设置为bool  
第二,如果您想传递vkb7按钮的发件人或vkb7按钮的属性,
那你应该这样通过:

  

button_start(发送者)   所以代码就像这样:

 private void vkb7_Click_1(object sender, EventArgs e)
 {
   //method
   if(button_start(sender))
   // do stuff 2
 }

然后在方法

 private bool button_start(object sender)
 {
    bool some = true;
    if (some)
    {
       return true; // I'd also like to break "button click"
    }
    else  
    return false;
 }