从方法中中断onclick事件

本文关键字:onclick 事件 中断 方法 | 更新日期: 2023-09-27 17:52:36

按钮的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"
    }
}

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

从方法中中断onclick事件

简单,让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
}

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

另一方面,如果在button_start中遇到错误条件,则抛出异常。

你不能真的"阻止"事件,因为它已经被触发了。但是,您可以根据结果手动处理点击。

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

First,设置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;
 }