2010-03-24 26 views
0

J'ai un MenuBar qui contient des éléments de menu généraux comme Fichier, Affichage, Outils, Aide. J'ai des sous-items dans chacun de ces menuitems. Le problème est que je veux ouvrir le menu 'Fichier' automatiquement quand j'appuie sur les touches Alt + f. Je pouvais capturer les keyevents sur la vue. Mais comment ouvrir le Menu Fichier du MenuBar (quelle est la fonction qui doit être appelée depuis MenuBar Class pour faire apparaître ces sous-menus)? J'ai cherché des informations sur google .. mais trouver cudnt. ou bien si vous avez une meilleure solution ou un exemple ..plz le poster.Comment ouvrir un menu automatiquement avec un raccourci?

<root> 
    <menuitem label="File"> 
     <menuitem label="New" enabled="false"/> 
     <menuitem label="Open.." enabled="false"/> 
     <menuitem label="Save" enabled="false"/> 
     <menuitem label="Restore" enabled="false"/> 
     <menuitem label="Print" enabled="true"/> 
     <menuitem type="seperator" enabled="false"/> 
     <menuitem label="Exit" enabled="true"/>  
    </menuitem> 
    <menuitem label="View" accesskey="v"> 
     <menuitem label="Zoom In" enabled="true" maxValue="200"/> 
     <menuitem label="Zoom Out" enabled="true" maxValue="25"/> 
    </menuitem>  
    <menuitem label="Tools" enabled="false"> 
     <menuitem label="item1" enabled="false"/> 
     <menuitem label="item2" enabled="false"/> 
    </menuitem> 

</root> 

Merci à l'avance :)

Sriss

Répondre

0

Je l'ai résolu :)

var FileMenu: Menu = myMenuBar.getMenuAt (0);

fileMenu.show();

Cela fonctionne, mais maintenant le problème est .. le sous-menu est sorti à l'emplacement (0,0) de l'application pas au fichier Menu .. !!!

1

Pour ouvrir un menu à sa position:

var fileMenu:Menu = mnuBar.getMenuAt(0); 
pnt : Point = new Point(mnuBar.x,mnuBar.y + mnuBar.height); 
pnt = localToGlobal(pnt); 
fileMenu.show(pnt.x,pnt.y); 
0

Il est un faux menu!

Une meilleure façon de le faire est la suivante:

e.preventDefault();  // will play against pressed ESC, too 
menuBar.setFocus(); 
menuBar.dispatchEvent(new KeyboardEvent(KeyboardEvent.KEY_DOWN, false, false, 0, Keyboard.RIGHT)); 
+0

Vous devez développer votre réponse un peu plus. Et faites attention à votre grammaire, surtout dans les réponses courtes, car cela peut changer considérablement la signification. – indivisible

Questions connexes