2010-04-22 3 views

ответ

8

Вы можете использовать собственность Enabled. Зарегистрируйте обработчик событий OnClick и установите Enabled в false как первое. Затем начните вычисление и восстановите Enabled до true, когда вы закончите. Если вычисление займет много времени, вы должны запустить второй поток. В этом случае вам может понадобиться использовать метод Invoke для повторного включения кнопки.

2

В обработчике события OnClick сделайте первое заявление a button.Enabled = false; и последнее заявление a button.Enabled = true;.

1

Предполагая, что это винная игра, о которой вы говорите, после того, как вы отключите кнопку, связанное с ней событие не будет срабатывать. (Если я правильно помню опыт)

Путь вокруг этого состоит в том, чтобы иметь 2 кнопки, один включен и один отключен. Когда пользователь нажимает на первую кнопку, вы можете скрыть ее и показать отключенному, что делает ее похожей на ту же кнопку, которая была отключена.

Затем, когда вы закончите выполнение своего кода, попробуйте повторно отобразить первую кнопку и снова скрыть вторую.

2

делают myButton.Enabled = ложь в вашем случае Mouseclick и в конце кода сделать это верно

0

Насколько я понимаю, единственная цель вы намерены сделать это мешает тот же код будет выполняется дважды.

Почему бы не использовать булевскую переменную уровня класса внутри метода обработчика.

Если переменная установлена, вызов вернет еще код, который будет выполнен - ​​в конечном счете, сброс булевой переменной.

3

Попробуйте это:

button.Enabled = false; 
....... do main processing here ............ 
Thread.Sleep(1000); 
Application.DoEvents(); 
button.Enabled = true; 
Смежные вопросы