Кнопки приложений Winform перестают отвечать на запросы - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть приложение winform, разработанное в рамках 3.5.Периодически кнопки в приложении перестают отвечать на запросы.Приложение никогда не показывает «Не отвечает» в заголовке, а просто кнопки.Даже если я поставлю точку останова в коде нажатия кнопки, при нажатии кнопки элемент управления там не появится !!!

В чем может быть причина?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2012

До тех пор, пока вы не исправите свой коэффициент принятия, наиболее вероятным ответом будет то, что событие «Нажатие кнопки» утратило условие «Обрабатывать».В Vb.Net действительно легко увидеть событие Handles xyz:

Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click

В c # вам нужно углубиться в вызов InitializeComponent (F12) в конструкторе формы.Затем проверьте кнопку, которой назначено ваше нажатие:

this.Button1.Click += new System.EventHandler(this.Button1_Click);
0 голосов
/ 06 февраля 2012

Вероятно, причина в том, что вы что-то делаете в потоке пользовательского интерфейса (обращаетесь к базе данных, подключаетесь к Интернету, читаете файлы и т. Д.), Поэтому она занята.

Вот решение:

  • Никогда не используйте бизнес-логику в файлах с выделенным кодом (скажем, никогда не используйте ее в методах Button_Click, OnLoad и т. Д.).
  • Используйте шаблоны MVC / MVP для отделения вашей бизнес-логики от пользовательского интерфейса.
  • Всегда выполняйте свою бизнес-логику асинхронно (рабочие потоки, задачи и т. Д.), Это тривиально, когда ваша бизнес-логика отделена.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...