2010-06-28 296 views
1

我的程序中有一個按鈕,應該在點擊循環完成後點擊,點擊按鈕的代碼是什麼?按鈕點擊事件

+2

爲什麼把它作爲一個按鈕,如果用戶不打算做任何事情呢? – ceejayoz 2010-06-28 21:59:07

+1

一個winforms按鈕或其他類型的按鈕? – 2010-06-28 21:59:19

+0

我知道它看起來並不聰明,但它的服務器將通過單擊按鈕開始收聽,並且應該不斷地進行,但不能將其放在一個循環中。因爲會崩潰,所以這是我可以帶來的最好主意,在每次接收並重新開始後關閉連接。 – Mohammad 2010-06-28 22:06:28

回答

6

以編程方式點擊一個按鈕,只需調用Click方法:

button.Click(); 

注意,這不會導致UI更新彷彿按鈕被按下了 - 它只是導致了事件處理程序單擊事件正在運行。

在你的問題中,你提到你正在運行一個while循環,這大概需要一些時間。如果你是以天真的方式做到這一點 - 在主應用程序線程中運行它 - 它會在循環運行時導致UI被阻塞。要解決此問題,需要在另一個線程中運行while循環,例如使用BackgroundWorker。但是當你的循環結束時,你必須小心確保在主線程上回調點擊事件。執行此操作的一般方法是使用Invoke,但在具有BackgroundWorker的特定情況下,您可以在OnRunWorkerCompleted事件處理程序中的循環結束後運行代碼,那麼您不需要調用BackgroundWorker自己的Invoke這是給你的。

+0

用於調出「BackgroundWorker」的+1 – 2010-06-28 22:11:05