2013-12-12 66 views
-4

我有一種方法可以處理不同的事件,以處理不同的按鈕點擊。當點擊兩個或更多按鈕時,所有事件都會同時發生,而不是同時發生。這是搞亂整個計劃。示例同時執行多個事件

btn.Name = "btn1"; 
btn.Name = "btn2"; 
btn.Name = "btn3"; 
btn.Name = "btn4"; 
private void call_Click(object sender, EventArgs e) 
     { 

      if (btn.Name == "btn1") 
      { 
       doSomething(); 
      } 
      else if (btn.Name == "btn2") 
      { 
       doSomething(); 
      } 
      else if (btn.Name == "btn3") 
      { 
       doSomething(); 
      } 
      else if (btn.Name == "btn4") 
      { 
       doSomething();`` 
      } 

     } 

如何防止發生這種情況,並使程序按點擊順序執行一個事件。

+0

是'doSomething()'做某種長時間運行的異步任務嗎? –

+0

doSomething根據點擊的按鈕在表單上移動不同的圖像。 – user3034845

+2

這是winforms,webforms,WPF或c#的其他使用?是什麼讓你認爲所有的事件同時發生?至少winforms UI是單線程的,我認爲C#的其他大部分標準用途也是如此。 –

回答

0

假設您可能不止一次點擊按鈕,那麼如果您不想同時調用多個,只需在完成時單擊並重新設置時禁用html按鈕。

<button type="button" disabled> 
+0

如果他們使用WinForms呢? – Kayla

0

每個按鈕都做了不同的事情,因此每個按鈕都應該有自己特定的點擊處理程序。因此,通過爲每個按鈕分配單獨的處理程序,正確編寫代碼來解決您的問題。