Введите ключ не используется MessageBox, C #, Windows Forms - PullRequest
3 голосов
/ 07 августа 2009

У меня есть форма с пользовательским элементом управления. Предположим, обычай контроль имеет фокус. Если я покажу окно сообщения из этой формы, когда окно сообщения закрыто нажатием Enter на любом из OK или Отмена, окно сообщения закрывается, а затем пользовательский элемент управления получает событие клавиатуры (OnKeyUp) с вводом ключ.

Этого не происходит, если клавиша «пробел» также используется для «нажатия» кнопка ОК или Отмена.

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

Кто-нибудь знает, как остановить это входящее сообщение после того, как оно используется для нажатия кнопки MessageBox?

Ответы [ 2 ]

3 голосов
/ 07 августа 2009

Разве вы не можете игнорировать это в коде? Это синтаксис VB:

    Private Sub frmEdit_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
    If e.KeyCode = Keys.Enter Then
        e.Handled = True
    End If
End Sub
2 голосов
/ 07 августа 2009

Я сделал для вас грубое преобразование из VB.NET в C #, надеюсь, это поможет.

private void frmEdit_KeyUp(ByVal object sender, KeyEventArgs e)
{
   if( e.KeyCode == Keys.Enter )
      {
         e.Handled = true;
      }
   else Application.DoEvents();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...