Эффективный способ запуска двух событий различий с помощью одной и той же кнопки при каждом нажатии? - PullRequest
1 голос
/ 09 июня 2010

У меня есть кнопка C #, скажем, «ON / OFF»:

Я хочу изменить «OFF», когда мы сначала нажимаем на нее и запускаем buttonOFF (). Когда мы нажимаем снова, она меняется на «ON 'и запустить buttonON ()

и т. Д.

Какой правильный способ сделать это?Могу ли я сделать все это в одном событии onClick?Мир маленького примера был бы полезен.Спасибо!

Ответы [ 3 ]

5 голосов
/ 09 июня 2010

Вы могли бы лучше всего использовать этот метод.Использование флажка с появлением кнопки

CheckBox checkBox1 = new System.Windows.Forms.CheckBox(); 
checkBox1.Appearance = System.Windows.Forms.Appearance.Button; 
5 голосов
/ 09 июня 2010
private void buttonON()
{
    // Magic here
}

private void buttonOFF()
{
    // Magic here
}

protected void button_click(object sender, EventArgs e)
{
    if ( button.Text == "ON" )
    {
        button.Text = "OFF";
        this.buttonOFF();
    }
    else
    {
        button.Text = "ON";
        this.buttonON();
    }
}
0 голосов
/ 09 июня 2010

Хотя решение работает, я думаю, что есть проблема с пользовательским интерфейсом.Учтите это:

Как пользователь, которого я смотрю на кнопку, кнопка говорит «Выкл.».Представляет ли это государство или действие?Это включено, и, нажав, я выключу его?Или он выключен и при нажатии я его включу?Кроме того, что я включаю / выключаю?Пользовательский интерфейс несколько двусмыслен, если у меня нет опыта и я не понял, что это значит.

Однако, если бы вы использовали что-то вроде появления флажка, предложенного Дином, и пометили кнопку (флажок), скажем, «Engine»и состояние, и цель понятны:

alt text

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...