Contextmenu avec spécification de hauteur maximum

Soyez le premier à donner votre avis sur cette source.

Vue 14 219 fois - Téléchargée 577 fois

Description

(Suite à question sur le forum : http://www.csharpfr.com/forum.v2.aspx?ID=613405)

Exemple de contrôle ContextMenu personnalisé pour pouvoir lui spécifier la hauteur maximum qu'il doit prendre.

Utilisation de la méthode SetMenuInfo des API.

Source / Exemple :


// VOIR LE ZIP POUR LE PROJET COMPLET

[DllImport("user32.dll")]
public static extern bool SetMenuInfo(
    [In]IntPtr hmenu, 
    [In]ref MENUINFO lpcmi
    );

Conclusion :


SetMenuInfo : http://msdn.microsoft.com/en-us/library/ms647997.aspx

MENUINFO : http://msdn.microsoft.com/en-us/library/ms647575.aspx

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
Tu peux l'ajouter à ta ToolBox en selectionnant l'assembly dans lequel il est.

Pour ce qui est des autres comportements, on ne peut pas tout avoir hein ;-)
Si tu veux entrer plus en détail tu devrais peut être te recoder la classe ContextMenu de A à Z :-)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/menus.asp
Messages postés
7
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
13 octobre 2014

Super, merci infiniment, c'est pil-poil ce qu'il me fallait :-)

Une question et une remarque cependant :
- ok pour créer ce context menu dynamiquement, mais comment fait-on pour voir ce composant dans la Toolbox du designer de Form ?
- dommage qu'on ne puisse pas appliquer ça à des menus sur plusieurs colonnes (en mettant thumbnail.BarBreak = true tous les x items) : SetMenuInfo ne permet pas de limiter la taille horizontale, et donc quand il y a beaucoup d'items, le menu prend toute la largeur de l'écran et les flèches de défilement n'apparaissent pas cette fois-ci !

Merci encore
Thibaud

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.