2013-07-29 20 views
-1

我的vb.net應用程序我有一個tooltrip menu.while點擊工具strip.i一次打開四個四毫秒..這一切都是我的孩子forums.so我定的代碼在 InvolveAllToolStripMenuItem_Click:使用功能鍵來查找vb.net窗口應用程序中的特定控件

Private Sub InvolveAllToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InvolveAllToolStripMenuItem.Click 
    AddHandler Me.KeyUp, AddressOf HandleKeyPress 
    Dim frm As New frmKeyAssignBoard 
    frm.Location = New Point(625, 0) 
    frm.MdiParent = Me 
    AddHandler frm.KeyUp, AddressOf HandleKeyPress 
    frm.Show() 
    Dim frm1 As New FrmrecievedDelivaryRequest 
    frm1.Location = New Point(625, 225) 
    frm1.MdiParent = Me 
    AddHandler frm.KeyUp, AddressOf HandleKeyPress 
    frm1.Show() 
    Dim frm2 As New FrmDelivary 
    frm2.Location = New Point(965, 0) 
    frm2.MdiParent = Me 
    AddHandler frm.KeyUp, AddressOf HandleKeyPress 
    frm2.Show() 
    Dim frm3 As New frmCarCall 
    frm3.Location = New Point(0, 0) 
    frm3.MdiParent = Me 
    AddHandler frm.KeyUp, AddressOf HandleKeyPress 
    frm3.Show() 
End Sub 

我想在這裏設置一些功能鍵:

  • 如果我點擊F3,我想將光標定位到frmKeyAssignBoard內特定文本框。
  • 如果我點擊f4,我想將光標定位到FrmrecievedDelivaryRequest中的特定文本框。

那麼,我可以爲此編寫程序?

+0

你的意思是「推F3」 ......在你的MDI父keydown事件試試吧。 .. – matzone

回答

0

要捕獲按鍵事件,通常我們處理表單的KeyPress或KeyUp事件。

但是在你的情況下,你有5個表格打開(父母+4個孩子)。因此,我建議你寫在父窗體的處理程序,但註冊的所有兒童的按鍵事件給它,一些僞代碼:

Sub ShowChildren() 
     ' Handle own Key up event 
     AddHandler Me.KeyUp, AddressOf HandleKeyPress 

     ' form 1 
     Dim frm As New frmKeyAssignBoard() 
     frm.Location = New Point(625, 0) 
     frm.MdiParent = Me 
     AddHandler frm.KeyUp, AddressOf HandleKeyPress 

     ' similar for frm2, frm3, ... 
     ' 
    End Sub 

    Private Sub HandleKeyPress(sender As Object, e As KeyEventArgs) 
     If e.KeyCode = Keys.F2 Then 
      ' do whatever necessary when F2 is pressed 
     ElseIf e.KeyCode = Keys.F3 Then 
      ' do whatever necessary when F3 is pressed 
      ' for example, if you want fo focus on frm1's particular control 
      '   but have to expose TxtBox as a public readonly property beforehand 
      frm1.BringToFront() 
      frm1.TxtBox.Select() 
      frm1.TxtBox.Focus() 
     ElseIf e.KeyCode = Keys.F4 Then 
      ' do whatever necessary when F4 is pressed 
     Else 
      '... 
     End If 
    End Sub 
+0

先生,,我會檢查並讓你知道 – user2629184

+0

,同時給這個(AddressOf HandleKeyPress)得到錯誤:HandleKeyPress沒有聲明,它可能無法訪問,由於其保護級別 – user2629184

+0

你在哪裏調用addhandler frm.KeyUp,addressof handleKeyPress ?它不是以相同的形式/類嗎? – Rex

相關問題