Bonjour,
Me revoilà...
Je suis en train de mettre au point un programme qui définit via les méthodes de reflection un style attaché à une form donnée.
Jusqu'à présent, pas de problème avec un code de ce type :
Ainsi, de cette façon, l'ensemble des texts de ma form peut s'afficher avec une police en gras par exemple (même les menuitem avec une ligne de ce type "For Each MyMenuItem In CType(conpGeneric, MenuStrip).Items").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Public Sub UpdateFormWithStyle(ByVal conpGeneric As Control) If TypeOf conpGeneric Is Form Then ...<je définis une fonte globale à ma form, ou d'autres propriétés visuelles telles que le backcolor> ElseIf TypeOf conpGeneric Is Button Then ...<et ainsi de suite pour d'autres types de controles> End If If conpGeneric.HasChildren Then Dim conChildControl As Control For Each conChildControl In conpGeneric.Controls UpdateFormWithStyle(conChildControl) Next End If
L'ensemble ? Non, un petit composant visuel résiste toujours à l'envahisseur
Il s'agit du ContextMenuStrip qui n'est pas considéré comme un "ChildControl" de la form contrairement au MenuStrip.
Je peux bien entendu chercher pour chacun des controls si la propriété ContextMenuStrip est renseignée et dans l'affirmative appliquer le style à l'objet trouvé mais c'est très loin d'être optimisé vu que N controls peuvent être rattachés au même ContextMenuStrip...
En regardant un peu chez MSDN, je tombe rapidement sur les classes IContainer et ISite mais je ne trouve pas la solution au problème suivant :
Comment recenser les contextmenustrips définis en conception sur une form donnée ?
Partager