2011-03-03 1 views
0

J'essaie de créer un programme qui est essentiellement un ContextMenuStrip, où les utilisateurs peuvent ajouter leurs propres raccourcis et ainsi de suite et accéder au menu en appuyant sur une combinaison de raccourcis clavier.C# - Standalone ContextMenuStrip - Quelques frustrations

La façon dont je fais apparaître le menu est en donnant au formulaire principal 0% d'opacité, mais s'il y a un autre moyen, s'il vous plaît faites le moi savoir.

Mon souhait est de faire quelque chose comme ça, juste beaucoup plus personnalisable et convivial: http://www.bullzip.com/products/exm/info.php

Jusqu'à présent, j'ai eu quelques problèmes: - Lorsque le menu est d'abord montré, tout fonctionne bien, mais lorsque j'essaie d'appuyer à nouveau sur la touche de raccourci, le menu apparaît, mais une fenêtre "vide" apparaît également dans la barre des tâches. - Encore une fois, lorsque le menu est affiché, tout va bien, mais lorsque vous cliquez ailleurs que sur le menu, il ne se ferme plus. La seule façon de le fermer est de sélectionner quelque chose dans le menu.

Espérons que certains d'entre vous peut me diriger dans la direction d'une solution :)

Merci à l'avance!

+0

Quel type d'application (WebForms, WPF, etc)? Pourquoi avez-vous besoin d'un formulaire principal si vous ne montrez qu'un menu? –

+0

C'est WinForms. Et comment puis-je faire une demande sans formulaire principal et afficher uniquement le menu? Btw, je vais le rendre accessible via un NotifyIcon (pour éditer le menu et ainsi de suite) – Neo3000

+1

Vous m'avez perdu en rendant quelque chose de visible en mettant l'opacité à 0. La question n'a pas de sens et est sans réponse. –

Répondre

0
Form.ShowInTaskbar = false; 

Form.WindowState = FormWindowState.Minimized; 

Ceci devrait vous cacher le formulaire.

Ensuite, utilisez ce qui suit pour intercepter les touches.

protected override bool ProcessCmdKey(ref Meassage msg, Keys keyData) 
{ 
    if(keydata == whatever) 
    { 
     contextmenustrip.Show(); 
    }  

    return true; //false if you want to suppress the key press. 
} 
+0

J'ai déjà défini ces propriétés, mais cela ne fonctionne pas .. Il s'ouvre toujours dans la barre des tâches et ne se ferme pas sur le focus perdu. – Neo3000

+0

Ouais, eh bien cela nécessite que le formulaire soit affiché et ce n'est pas un raccourci clavier global - je l'ai déjà fait .. Mon problème est qu'il ne se cache pas quand on clique sur autre chose et qu'il apparaît dans la barre des tâches, même si les réglages sont (pour autant que je sache) réglés correctement. – Neo3000