Вот способ поймать клавишу Enter
. Вы должны быть в состоянии расширить концепцию, чтобы достичь того, чего вы хотите.
Public Class Form1
Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress
If e.KeyChar = Convert.ToChar(13) Then
MsgBox("You pressed Enter")
End If
End Sub
End Class
Получайте удовольствие!
Вот правка, которая поможет вам с вашими формами:
Допустим, у вас есть основная форма («внешняя»), которая содержит одно «дочернее» окно. Я говорю «ребенок», но это не имеет ничего общего с наследованием, это просто формы.
Теперь вы хотите, чтобы нажатие клавиши отслеживалось «основной» формой, даже если фокус находится на «дочернем»сформироваться. Вот способ достижения ниндзя-эска. Это качество простое, но не самое элегантное. Тем не менее, он будет работать как задумано.
В «основной» форме вам необходимо отслеживать «дочернюю» форму таким образом, чтобы вы могли использовать ее события и открытое событие:
Public Class Main
'modal variable to keep track of the child form
Private WithEvents _childForm As Form
'the rest of your main class goes here
End Class
Я не знаю, есть ли у вас только одна дочерняя форма или несколько, поэтому вы можете рассмотреть возможность использования Списка, если у вас более одной дочерней формы или их переменное число:
Private _childFormsList As New List(Of Form)
Теперь, каждый раз, когда вы открываете форму, вы должны обновлять модальные переменные в основном (я буду работать с предположением, что у вас есть только одна дочерняя форма за раз, чтобы упростить задачу):
_childForm = New ChildFormClass()
_childForm.Show()
'or whatever you're doing with the Form
Теперь вернитесь к этой строке ранее:
Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress
и добавьте соответствующее Событие из дочерней Формы:
Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress, _childForm.KeyPressed
И теперь это Событие сработает дляобе формы. Тем не менее, вам следует переименовать Sub, поскольку это будет не только Form1 (основная форма, как бы вы ее ни называли), которая будет срабатывать больше.
Я буду время от времени зависать, если у вас возникнут дополнительные вопросы.