簡體   English   中英

如何禁用雙擊winform按鈕?

[英]How to disable double click on winform button?

我不想讓用戶雙擊我的按鈕。 在第一次單擊時,它應該被禁用,一旦我的代碼被執行,我應該啟用該按鈕。 怎么做 ?

您可以使用Enabled屬性。 注冊一個OnClick事件處理程序並將Enabled設置為false作為第一件事。 然后開始計算並在完成后將Enabled恢復為true。 如果計算需要很長時間才能完成,那么您應該啟動第二個線程。 在這種情況下,您可能需要使用Invoke方法重新啟用該按鈕。

試試這個:

button.Enabled = false;
....... do main processing here ............ 
Thread.Sleep(1000);
Application.DoEvents();
button.Enabled = true;

OnClick事件處理程序中,將第一個語句button.Enabled = false; 並且最后一個語句是一個button.Enabled = true;

假設這是一個你正在談論的winform,一旦你禁用了按鈕,附加到它的事件就不會觸發。 (如果我從經驗中記得正確)

解決這個問題的方法是有2個按鈕,一個啟用,一個禁用。 當用戶單擊第一個按鈕時,您可以隱藏它並顯示已禁用的按鈕,使其看起來像是禁用了相同的按鈕。

然后,當您完成代碼執行后,只需重新顯示第一個按鈕並重新隱藏第二個按鈕。

在mouseClick事件中使myButton.Enabled = false,並在代碼結束時將其設為true

據我所知,您打算這樣做的唯一目的是阻止相同的代碼執行兩次。

為什么不在處理程序方法中使用類級布爾變量。

如果設置了變量,則調用將返回,否則代碼將被執行 - 最終重置布爾變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM