2013-12-12 5 views
-4

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

btn.Name = "btn1"; 
btn.Name = "btn2"; 
btn.Name = "btn3"; 
btn.Name = "btn4"; 
private void call_Click(object sender, EventArgs e) 
     { 

      if (btn.Name == "btn1") 
      { 
       doSomething(); 
      } 
      else if (btn.Name == "btn2") 
      { 
       doSomething(); 
      } 
      else if (btn.Name == "btn3") 
      { 
       doSomething(); 
      } 
      else if (btn.Name == "btn4") 
      { 
       doSomething();`` 
      } 

     } 

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

+0

Является ли 'doSomething()' выполнение какой-то долговременной асинхронной задачи? –

+0

doSomething перемещает разные изображения в форме в зависимости от нажатой кнопки. – user3034845

+2

Это winforms, webforms, WPF или какое-то другое использование C#? Что заставляет вас думать, что все события происходят одновременно? По крайней мере winforms UI является однопоточным, и я думал, что большинство других стандартных применений C# также были. –

ответ

0

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

<button type="button" disabled> 
+0

Что делать, если они используют WinForms? – Kayla

0

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

Смежные вопросы