このシナリオで問題が発生しました(タイトルを参照)。1つの大きなパネル内に6つのサブパネルがあります。メインのTextboxから継承するTextBoxクラスを作成しました。Enterキーを処理するためにKeyPressedイベントハンドラーを使用しようとしています。ユーザーがEnterキーを押すと、サブパネル内の1つのテキストボックスから次のサブパネルに移動します。これまでのところ、次のパネルにジャンプすることなく、フォーカスが置かれているパネルでEnterKeyEventハンドラーが機能するようになりました。
以下は、動きを制御するために使用しているサブルーチンです。問題は、あるサブパネルから別のサブパネルにジャンプできないことです。どんな助けでもいただければ幸いです!
Protected Shared Sub NextControl(ByVal tControl As Control, ByVal Direction As Boolean)
Dim pControl As Control = tControl.TopLevelControl
tControl = pControl.GetNextControl(tControl, Direction)
If Direction = False Then
Dim tParent As Control
While TypeOf tControl Is UserControl
tParent = tControl.Parent
tControl = pControl.GetNextControl(tControl, Direction)
If tControl.Parent Is tParent Then
Exit While
End If
End While
End If
If tBox_P00.ControlNesting > 0 Then
'Dim i As Integer
pControl = tControl.Parent
For i As Integer = 0 To tBox_P00.ControlNesting - 2
pControl = pControl.Parent
Next
End If
If Not tControl Is Nothing Then
Do Until (tControl.TabStop = True) AndAlso (tControl.Enabled = True) AndAlso (tControl.Visible = True) AndAlso (TypeOf tControl Is Tbx00)
tControl = pControl.GetNextControl(tControl, Direction)
'Last in the Panel
If tControl Is Nothing Then
tBox_P00.Select(0, tBox_P00.TextLength)
Beep()
Exit Sub
End If
Loop
tControl.Focus()
Else
tBox_P00.Select(0, tBox_P00.TextLength)
Beep()
End If
Exit Sub
End Sub