Customizing menu shortcut keys

China☆狼群 提交于 2019-12-22 05:26:07

问题


I am working on an application that has a Menu on top of it. I want to use a different method for shortcut keys (being this snippet): this is for shortcut key: CTRL + N, 1

bool prefixSeen = false;

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (prefixSeen)
    {
        switch (keyData)
        {
            case (Keys.Control | Keys.D1):
                MessageBox.Show("New file");
                prefixSeen = false;
                break;
        }
    }
    switch (keyData)
    {
        case (Keys.Control | Keys.n):
            prefixSeen = true;
        break;
    }

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

Code taken from here.

Here is my menu:

And I want in menu items to be displayed (aligned on the right) the shortcut key (that should just be interpreted as a string I think). How can I achieve this effect?

Thanks in advance, and a Happy New Year to every one.

Edit: the built-in method for Visual Studio is:


回答1:


Use the MenuItem.ShortCut and MenuItem.ShowShortCut Properties.


If you want to create your own custom shortcuts these properties will not work for you, since they depend on a predetermined enumeration of ShortCut Keys. In that case I would suggest that you add it to the Text of your Menu, there is no automatic way of doing it.


Since it was pointed out that you are using ToolStripMenuItems you should be able to independantly set the ShortCutKeyDisplayString to what every you wish. You will still need to handle the actual Shortcut yourself.



来源:https://stackoverflow.com/questions/14104657/customizing-menu-shortcut-keys

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!