请教怎样实现下面的功能?
对于一个菜单,如:
最顶层的菜单项分别给与快捷键1,2,3 ...如果按下1,则展开菜单项1:
也就是每个子菜单下面又分别给与快捷键1,2,3,......,若再按下1,则展开菜单项1下面的子菜单1:
依次类推,不知道该怎样实现??

解决方案 »

  1.   

    文件(&F)
    按ALT+F 就是展开文件
    新建(&New)
    再按N就是展开新建
    是这个意思吗?
      

  2.   

    对于主菜单,你可以通过在窗体中添加如下的基类方法来实现:protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
    if (keyData == Keys.D1)//按1键的时候弹出名称为aa的主菜单
    {
    aa.ShowDropDown();
    }
    else if (keyData == Keys.D2)//按2键的时候弹出名称为bb的主菜单
    {
    b.ShowDropDown();
    }
    return base.ProcessCmdKey(ref msg, keyData);
    }
    对于主菜单下的子菜单项,你可以设置快挟捷键,比如(&1)菜单文本,这样在打开主菜单的情况下,直接按1就可以打开这个期间项。
      

  3.   

    To :hbxtlhx
    谢谢你,不过不知道我说的那个可不可以实现呢?我按1键的时候弹出名称为aa的主菜单,然后我再按照1,2,3...弹出aa主菜单下面的各个子菜单项下的子菜单项??
      

  4.   

    To :hbxtlhx 
    你说的方法,好像不太行,第一次我按下1时是可以的,可是如果把aa的第一个子菜单加上快捷键(&1)的话我再按下1时就不行了
    还有我先按下1弹出aa主菜单,我再想按2弹出bb主菜单就不行了
      

  5.   

    如果你加上Ctr或Shift来设置快捷键可能可以。但这样可能只是执行其功能不是弹出菜单。建议不要把程序做的很“奇怪”,用户使用起来越简单越大众化越好,你做一些不附合大众操作习惯的做法可能用户很能接受
      

  6.   

    其实我并不是要做这么奇怪,这是用户要求的,因为我的这个程序不是Windows程序,而是用在智能设备(Symbol MC3000)上的,用户觉得点触摸屏不好,就想用键盘直接输入如1,2,3之类的快捷键,不过看来很难实现~~~~
      

  7.   

    问题:当你按下1 弹出aa的子菜单,那你在按2时 是要弹出aa子项的2,还是bb呢?
    本身考虑的就有问题吧。