VB.NET - Problème avec le Foreground du Groupbox [Résolu]

Duke49 553 Messages postés jeudi 12 octobre 2006Date d'inscription 6 juin 2015 Dernière intervention - 28 févr. 2011 à 10:56 - Dernière réponse : Duke49 553 Messages postés jeudi 12 octobre 2006Date d'inscription 6 juin 2015 Dernière intervention
- 30 mars 2012 à 13:42
Salut à tous !

Je voudrais comprendre pourquoi lorsque j'applique une couleur de texte à mon contrôle Groupbox celle-ci s'applique sur tous les contrôles Label enfants ?

Marci ^^
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 28 févr. 2011 à 11:17
3
Merci
Parce que par défaut, les contrôles enfants reprennent un certain nombre des propriétés (variable suivant les contrôles) du conteneur parent.
C'est ainsi que l'on peut par exemple définir la même police de caractère pour l'ensemble des contrôles en la définissant au niveau du parent le plus élevé, c'est à dire la form.

Si tu ne veux pas que ce soit le cas, il faut, après avoir défini la propriété du parent, redéfinir la propriété de l'enfant.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_casy
Duke49 553 Messages postés jeudi 12 octobre 2006Date d'inscription 6 juin 2015 Dernière intervention - 28 févr. 2011 à 12:04
0
Merci
Suite à tes explications très appréciées, j'ai rajouté ce code dans la partie Designer de ma form:
    Private Sub GroupBoxAllLabels()
        Dim curCTR As ControlCollection = Me.Controls
        If curCTR.Count = 0 Then Exit Sub
        Dim curGB As GroupBox
        Dim curLAB As Object
        'Si dans la liste curCTR il n'existe pas de type
        'groupebox alors Exit Sub ????
        For Each curGB In curCTR
            For Each curLAB In curGB.Controls
                If curLAB.GetType = GetType(Label) Then
                    curLAB.ForeColor = Color.DarkRed
                End If
            Next
        Next
    End Sub

    Public Sub New()

        ' Cet appel est requis par le concepteur.
        InitializeComponent()

        ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
        Me.GroupBoxAllLabels()
    End Sub


Un dernier soucis pour terminer ce sujet, j'aimerai contrôler l'existence d'un type de contrôle avant de l'énumérer avec Each.
Comment faire ?


Merci Casi !
Commenter la réponse de Duke49
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 28 févr. 2011 à 14:15
0
Merci
Réponse dans l'autre sujet


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Commenter la réponse de cs_casy
Duke49 553 Messages postés jeudi 12 octobre 2006Date d'inscription 6 juin 2015 Dernière intervention - 30 mars 2012 à 13:42
0
Merci
Je remet un exemple plus explicite.
LABEL1 stay red in my groupbox

<System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.GroupBox1 = New System.Windows.Forms.GroupBox()
        Me.Label1 = New System.Windows.Forms.Label()
        Me.Button1 = New System.Windows.Forms.Button()
        Me.GroupBox1.SuspendLayout()
        Me.SuspendLayout()
        '
        'GroupBox1
        '
        Me.GroupBox1.ForeColor = System.Drawing.Color.DimGray
        Me.GroupBox1.Location = New System.Drawing.Point(12, 12)
        Me.GroupBox1.Name = "GroupBox1"
        Me.GroupBox1.Size = New System.Drawing.Size(237, 127)
        Me.GroupBox1.TabIndex = 0
        Me.GroupBox1.TabStop = False
        Me.GroupBox1.Text = "MASM32"
        'Move (AddControl) at the end of definitons from Me.GroupBox1
        Me.GroupBox1.Controls.Add(Me.Label1)
        Me.GroupBox1.Controls.Add(Me.Button1)
        'Add code here
        Dim ThisObject As Object = Nothing
        For Each ThisObject In Me.GroupBox1.Controls
            Select Case ThisObject.GetType
                Case GetType(Label)
                    ThisObject.ForeColor = Color.Black
                Case GetType(Button)
                    ThisObject.ForeColor = Color.Black
            End Select
        Next
        ThisObject = Nothing
        '
        'Label1
        '
        Me.Label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
        Me.Label1.ForeColor = System.Drawing.Color.Red
        Me.Label1.Location = New System.Drawing.Point(137, 0)
        Me.Label1.Name = "Label1"
        Me.Label1.Size = New System.Drawing.Size(96, 15)
        Me.Label1.TabIndex = 2
        Me.Label1.Text = "should work ..."
...
Commenter la réponse de Duke49

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.