2011-12-16 3 views
0

Я знаю, что ответ, вероятно, очень очевиден, но у меня здесь полный мозговой пердит.Изменение функции нажатия кнопки?

Что я хочу сделать, это простая форма с двумя кнопками. На первой кнопке отображается сообщение «1». После нажатия второй кнопки первая кнопка говорит «2» при нажатии. После повторного нажатия второй кнопки, она возвращается к словам «1».

Изучив программирование с помощью javascript, я все еще думаю в javascript. Мой первый ход мыслей был: myButton.onclick = ...

После этого единственное, что я мог подумать, это иметь условное значение внутри функции щелчка первой кнопки и использовать щелчок второй кнопки, чтобы изменить логическое значение. ..

Есть ли лучший способ сделать это?

+1

Я подозреваю, что Asp.net, а не WinForms. Добавить тег, пожалуйста? – LarsTech

+0

Я честно не знаю. Я создал новый проект форм C# windows, но я не знаю, что вы подразумеваете под WinForms или Asp.net. – mowwwalker

+0

Я добавил тег WinForms. Проект формы Windows - это, в основном, WinForms. Также есть WPF, SilverLight, ASP.Net и т. Д., Поэтому потенциальная путаница. – LarsTech

ответ

0

я понял, что происходит, когда один нажмите button2 первый раз и второй время. Но если вы хотите сказать, что его картины он должен следовать, то:

Bool bln = true; 

private void button2_Click(object sender, EventArgs e) 
{ 
    if(bln) 
     text1(); 
    else 
     text2(); 

    bln = !bln; 
} 

private void text1() 
{ 
    // Whatever 
} 

private void text2() 
{ 
    // Whatever 
} 

занесения метод с, что вы ищете. В этом случае эти методы можно повторно использовать для события click1 для кнопки.

Надеюсь, это поможет.

0

Вы должны сделать myButton.onclick-=function_name

+ = это добавить функцию

- = это удалить функцию

0

Есть обработчик нажатия второй кнопки в установить переменную сообщение, а просто есть первая кнопка активна обработчик щелчка.

0

Редактировать: Я написал это для asp.net. Преобразование в winforms не должно быть затруднительным.

Объявляем строковую переменную:

public static mystring = "1"; 

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

protected void btn2_Click(object sender, EventArgs e) 
{ 
    mystring = "2"; 
} 

Например, чередовать между 1 и 2, вы можете установить значение Int N = 1, и btn2 задает значение (3-n). ToString();

Затем сделайте:

protected void btn1_Click(object sender, EventArgs e) 
{ 
    Response.Write(mystring); 
} 
+0

Да, это другое, о чем я думал, но я чувствую, что есть лучший способ сделать это. – mowwwalker

1

Make button2 изменить метод, который вызывается, когда button1 щелкают:

private void button1_Click(object sender, EventArgs e) 
    { 
     Text = "1"; 
    } 
    private void button1_Click2(object sender, EventArgs e) 
    { 
     Text = "2"; 
     button1.Click -= button1_Click2; 
     button1.Click += button1_Click; 
    } 
    private void button2_Click(object sender, EventArgs e) 
    { 
     button1.Click -= button1_Click; 
     button1.Click += button1_Click2; 
    } 
Смежные вопросы