gpt4 book ai didi

winforms - 如何为 bindingNavigator 上的按钮分配快捷键?

转载 作者:行者123 更新时间:2023-12-04 22:21:59 24 4
gpt4 key购买 nike

有没有办法为 BindingNavigator 中的标准导航 ToolStrip 项目分配快捷键?

使用 .AddStandardItems 方法添加的项目属于 ToolStripItem 类型,它没有 ShortcutKeys 属性。

我试图转换到 ToolStripMenuItem ,但它失败了。

 public void ConfigureMyNavigator()
{
// Adds ToolStripItems which don't support shortcut keys
m_navigator.AddStandardItems();

// Adds a ToolStripMenuItem which can support a shortcut key
var button = new ToolStripMenuItem
{
Size = new Size(0, 0),
Text = "Save",
ShortcutKeys = (Keys)Shortcut.CtrlS,
ToolTipText = "Press Ctrl+S to save"
};
button.Click += tsmi_Click;

m_navigator.Items.Add(button);

// This fails with invalid cast exception
((ToolStripMenuItem)m_navigator.Items[1]).ShortcutKeys = (Keys)Shortcut.AltLeftArrow;


}

我想我可以用toolstripmenuitems一一替换toolstripitems,但是感觉这样比较别扭。

最佳答案

您可以监听键盘命令,然后单击相应的 ToolStripButton。覆盖 ProcessCmdKey表单代码中的方法:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch (keyData)
{
case (Keys.Alt | Keys.Left):
m_navigator.Items[1].PerformClick();
break;
case (Keys.Alt | Keys.Right):
m_navigator.Items[6].PerformClick();
break;
}

return base.ProcessCmdKey(ref msg, keyData);
}

关于winforms - 如何为 bindingNavigator 上的按钮分配快捷键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15126928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com