vpsGridView라는 VB.Net에 UserControl이 있고 MenuStrip 이름 툴바와 dtgvpsGV라는 Datagridview가 있습니다. 내 MenuStrip에는 두 개의 ToolStripMenu, tsAddRow (Ctrl + Ins) 바로 가기 키 및 tsDeleteRow (Ctrl + Del) 바로 가기 키가 있습니다.단축키 사용시 이벤트 발생 방법
Public Event vps_ItemClick(ByVal sender As Object, ByVal e As System.EventArgs)
Private Sub Toolbar_ItemClick(ByVal sender As Object, ByVal e As System.EventArgs)
RaiseEvent vps_ItemClick(sender, e)
End Sub
Public Sub New()
' This call is required by the Windows Form Designer.
InitializeComponent()
Dim btn As ToolStripMenuItem = Nothing
Dim txt As ToolStripTextBox = Nothing
'Loop through MenuStrip items for Custom Handler
For x As Integer = 0 To Toolbar.Items.Count - 1
If Toolbar.Items(x).GetType.ToString = "System.Windows.Forms.ToolStripMenuItem" Then
btn = DirectCast(Toolbar.Items(x), ToolStripMenuItem)
RemoveHandler btn.Click, AddressOf Toolbar_ItemClick
AddHandler btn.Click, AddressOf Toolbar_ItemClick
End If
Next
End Sub
내 문제는 내가 바로 가기 키를 사용하는 경우, vps_ItemClick이 발사되지 않은,하지만 난 클릭 사용하는 경우 그것을 잘 작동합니다 :
여기 내 코드입니다. 무엇이 잘못되었는지 확인하거나 더 나은 방법을 제안하도록 도와 줄 수 있습니까? 고맙습니다.
당신은 바로 가기 키를 누르면 때 'ToolStripMenuItem'가'Click' 이벤트를 발생하지 않는 것을 제안 할 것으로 보인다 그것은 단순히 뭔가를하지 않는 경우가 아니다 실제로 깨졌습니다. 가장 먼저 할 일은 각 메뉴 항목에 대한 핸들러를 디자이너에서 두 번 클릭하고 각각에 브레이크 포인트를 설정하고 단축키를 누를 때 적중 여부를 테스트하는 것입니다. – jmcilhinney
고맙습니다. 위의 코드에서 단축키를 누르면 코드가 Toolbar_ItemClick Sub를 트리거/실행하지만 내부의 RaiseEvent vps_ItemClick (보낸 사람, 전자)이 실행되지 않았습니다. 나는 틀린 것을 모른다. – Leo
'Toolbar_ItemClick' 메쏘드가 호출되면,'RaiseEvent'가 실행될 것입니다. 이벤트가 발생하거나 예외가 발생합니다. 예외가 없다면 작동하고 다른 곳에서 뭔가 잘못하고있는 것입니다. 중단 점을 사용하고 코드를 단계별로 실행하여 코드를 올바르게 디버깅해야합니다. – jmcilhinney