2010-04-01 2 views
1

у меня странный вопрос, возникшую в последнее время:нажатий клавиш в Winforms приложение вызывая окно, чтобы закрыть неожиданно

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

  • Странствующий/неправильно назначенные обработчики событий, которые могут быть переводческие нажатие клавиши как форма отмены
  • Я использую KeyPreview в нескольких окнах, но отладка показывает, что это не может быть причина
  • Случается в любой форме заявки
  • Случается даже совершенно новые текстовые поля упали на форме
  • попытался удалить объявление WithEvents из деклараций текстового поля (VB.NET)
  • г esult является DialogResult.Cancel, когда я нарушу код после шоу или ShowDialog
  • формы не использует AcceptButton или CancelButton свойства (значение Нет)
  • Примечания: Я модифицирующий большое кодовый с большим количеством коды, который у меня есть но коснуться

Что еще может вызвать это странное поведение?

+1

Просто выстрел, но я попытался бы подключиться к событию FormClosing и поставить точку останова там. Вы могли бы просмотреть трассировку стека, чтобы посмотреть, как вы туда попали. –

+0

Mike_G: Вы были правы Положите свой комментарий в ответ, и я подниму вас. Slaks уже получил галочку. –

ответ

3
  • Нажмите Ctrl + D, E (Debug, исключение) и сказать Visual Studio, чтобы разорвать всякий раз, когда какое-либо исключение, то увидеть, если есть какое-либо исключение в работе.

  • Нажмите Ctrl + D, N (Debug, New Breakpoint, Break at Function) и установите точку останова на System.Windows.Form.OnClosing, а затем посмотрите на стек вызовов. (В качестве альтернативы, переопределить OnClosing в основной форме, а затем установить контрольную точку в нем)

+0

У меня на самом деле была такая же мысль сразу после того, как я разместил этот вопрос. Ломать в форме Закрывающий обработчик разрешил мне чтобы увидеть достаточно стека вызовов, чтобы идентифицировать таймер, который проверял состояние курсора приложения и используя goto для ошибки, тихо закрывать приложение, когда курсор был нулевым. Интересно, как далеко распространилось изобретение Рубе Голдберга. Все еще не уверен, как в текстовом изменении может повлиять на очередь сообщений так много ... –

1

DialogResult кнопки был установлен на «Отменить» случайно. После возврата к значению по умолчанию „None“, проблемы Это моя история.

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