VB.NET Winforms 菜单项快捷方式覆盖默认快捷方式?

标签 vb.net winforms datagridview keyboard-shortcuts

在 VB.NET Winforms 应用程序中,我有一个包含 datagridview 和文本框的表单。我有一些菜单项条目的快捷键为 Ctrl + XCtrl + C Ctrl + V 对 datagridview 进行操作。但是,这些会覆盖文本框的默认剪切、复制和粘贴快捷方式。如何使菜单快捷方式仅在 datagridview 具有焦点时应用?

最佳答案

正确的 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

关于VB.NET Winforms 菜单项快捷方式覆盖默认快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3525691/

相关文章:

.net - 我的代码中出现未知数据库连接器错误

linux - 使用 VB.NET 将文档加载/保存到 SFTP Linux 服务器

c# - 为什么我的事件属性代码会导致堆栈溢出异常?

c# - 自定义文本框自动完成

c# - 如何在带有图像的面板上绘制点

c# - 将 DataGridView 单元格值转换为 DateTime

sql - 如何在 VB.NET 中通过 Visual FoxPro 使用 SUM 和 GROUP BY(SQL)?

string - .net 如何将字符串生成器与字符串进行比较

c# - 在 datagridview 组合框中将查询结果显示为默认项

c# - 如何使用 BindingSource 在 DataGridView 的单列中绑定(bind)导航属性(二级模型的两个属性)?