1

Button的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

4 回答 4

4

很简单,让我们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
}
于 2013-01-13T18:30:29.773 回答
0

如果您正在确定button_start是否应该在 中发生动作vkb7_Click_1,请考虑在中进行button_start返回bool,然后使用中的返回值vkb7_Click_1

另一方面,如果您在 中遇到错误情况button_start,则抛出异常

于 2013-01-13T18:33:10.523 回答
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;
}
于 2013-01-13T18:37:06.027 回答
0

首先,将返回类型设置button_startbool
Second,如果要传递按钮的发送者vkb7或按钮的属性vkb7
那么你应该像这样传递它:

button_start(sender) 所以代码是这样的:

 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;
 }
于 2013-01-13T19:04:19.467 回答