在VB.NET Winforms應用程序中,我有一個包含datagridview和textbox的表單。我有一個有按Ctrl +X,按Ctrl +ç快捷一些菜單項條目,按Ctrl +V,關於datagridview的操作。但是,這些將覆蓋文本框的默認剪切,複製和粘貼快捷方式。如何才能使菜單快捷方式僅在datagridview具有焦點時適用?VB.NET Winforms菜單項快捷方式覆蓋默認快捷方式?
2
A
回答
2
正確的UI設計需要在菜單項不起作用時禁用它。一個副作用就是它不會再偷走按鍵,就是你想要的。 Application.Idle事件對此非常方便。
Public Class Form1
Public Sub New()
InitializeComponent()
AddHandler Application.Idle, Application_Idle
End Sub
Private Sub Application_Idle(ByVal sender As Object, ByVal e As EventArgs)
CopyToolStripMenuItem.Enabled = DataGridView1.Focus
'' etc...
End Sub
End Class
2
在DataGridView.GotFocus
事件中,分配快捷方式並在LostFocus
事件中再次刪除它們。
因此,像這樣:
Private Sub DataGridView_GotFocus(sender as Object, e as EventArgs) Handles DataGridView.GotFocus
menuItem1.Shortcut = Shortcut.CtrlV
End sub
Private Sub DataGridView_LostFocus(sender as Object, e as EventArgs) Handles DataGridView.LostFocus
menuItem1.Shortcut = Shortcut.None
End sub
但是總的來說,我不會將其他功能分配到按Ctrl + X,按Ctrl + Ç,並按Ctrl + V鍵。
相關問題
- 1. 菜單項快捷方式
- 2. NSIS覆蓋快捷方式
- 3. WiX快捷方式覆蓋現有的同名快捷方式
- 4. 快捷方式在Silverlight和默認瀏覽器快捷方式
- 5. 菜單快捷方式
- 6. Qt Creator「覆蓋方法」快捷方式?
- 7. 覆蓋在VSCT默認鍵盤快捷方式文件
- 8. 如何覆蓋Qt中的默認快捷方式
- 9. Tampermonkey覆蓋JIRA快捷方式
- 10. 顛覆URL快捷方式
- 11. 快捷方式
- 12. 如何覆蓋Visual Studio的菜單加速器快捷方式?
- 13. 快捷方式在項目
- 14. Python快捷方式
- 15. PowerShell快捷方式
- 16. MATLAB快捷方式
- 17. 在winforms中創建快捷方式VS2017
- 18. 快捷方式URL的快捷方式(.lnk .url)解析器
- 19. Qt - 刪除快捷方式 - 模糊的快捷方式超載
- 20. 創建批處理和快捷方式的快捷方式
- 21. 代碼片段快捷方式VB.NET
- 22. VB.NET 4.5發送快捷方式問題
- 23. 用我自己的自定義快捷方式覆蓋瀏覽器快捷方式
- 24. TinyMCE v4.3.6 - 快捷方式
- 25. ComputerName中的快捷方式
- 26. TortoiseSVN提交快捷方式
- 27. NullPointerException,邏輯快捷方式
- 28. vmlite android的快捷方式?
- 29. ExcelDna:語法快捷方式
- 30. Clojure:when-let的快捷方式