Kir*_*eed 4 keyboard-shortcuts winforms bindingnavigator
有没有办法将快捷键分配给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;
}
Run Code Online (Sandbox Code Playgroud)
我想我可以逐一用toolstripmenuitems替换toolstripitems,但觉得这很尴尬.
Mik*_*chs 10
您可以侦听键命令,然后单击相应的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);
}
Run Code Online (Sandbox Code Playgroud)