2013-01-13 49 views
1

按鈕的OnClick事件被稱爲:從方法打破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" 
    } 
} 

我想從方法打破「按鈕,點擊」事件 - 我該怎麼辦做它?

+0

你是什麼意思 「破發」 按鈕,點擊? – Yuck

回答

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

如果您在button_start決定行動是否應發生在vkb7_Click_1,考慮做button_start回報bool,然後在vkb7_Click_1使用返回值。

另一方面,如果您在button_start,throw an exception中遇到錯誤情況。

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