IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Acceder a tout les controles d'un formulaire


Sujet :

Windows Forms

  1. #1
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut Acceder a tout les controles d'un formulaire
    Bonjour ,

    Je ne trouve pas la solution a un de mes problèmes :

    J'aimerais changer le texte affiché pour tout les contrôles d'un formulaire , via une boucle (pour éviter de tous me les taper a la main évidement.)

    Donc je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     For Each ctrl As Control In form
               ctrl.Text = "coucou"
     Next
    hors avec un tel code , je n'accède qu'au boutons qui sont sur mon formulaire , j aimerais impacter aussi les colonnes des datagrid , les menus de menustrip etc ....

    Si vous avez des idée , suggestions je suis preneur .

    merci
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    il va falloir écrire un peu plus de code que ca
    déjà parce que les colonnes ne sont pas des controles, les cellules non plus, c'est le dgv qui s'occupent de faire leur affichage

    il faut aussi faire une sub récursive, car des controles peuvent avoir des controles sur eux ... (panel et autre groupbox surtout)

    donc je te propose une sub récursive avec en paramètre un controle, pour démarrer tu donneras me
    et pour chaque controle de .controls, tu appelles à nouveau la sub et tu fais un traitement selon le type de controle
    if typeof datagridview (à coder)
    if typeof machin
    ou sinon modifier .text
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For Each ctrl As Control In form
                If (ctrl.Controls.Count > 0) Then
                    Select Case TypeOf(ctrl) Is
                        Case DataGridView
                            fonction(...)
                    End Select
                Else
                    ctrl.Text = "coucou"
                End If
            Next
    Dans ce style ?
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    non, plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     Public Sub ChTexteCtrls(ByVal ctrl As System.Windows.Forms.Control)
     
            For Each c As System.Windows.Forms.Control In ctrl.Controls
                ChTexteCtrls(c)
     
                If TypeOf c Is System.Windows.Forms.DataGridView Then
                    ChTexteDGV(DirectCast(c, System.Windows.Forms.DataGridView))
                    Continue For
                End If
     
                ' teste si typeof Menu (ou autre)
     
     
                'tous les tests ont fait continue for donc les cas restants on modifie .Text
                c.Text = ""
     
            Next
     
        End Sub
     
        Private Sub ChTexteDGV(ByVal d As System.Windows.Forms.DataGridView)
     
        End Sub
    si t'es sur une form, tu appelles ChTexteCtrls(me) et après c'est récursif
    et sinon le TypeOf n'accepte pas d'être dans un select case je crois ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    non, plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     Public Sub ChTexteCtrls(ByVal ctrl As System.Windows.Forms.Control)
     
            For Each c As System.Windows.Forms.Control In ctrl.Controls
                ChTexteCtrls(c)
     
                If TypeOf c Is System.Windows.Forms.DataGridView Then
                    ChTexteDGV(DirectCast(c, System.Windows.Forms.DataGridView))
                    Continue For
                End If
     
                ' teste si typeof Menu (ou autre)
     
     
                'tous les tests ont fait continue for donc les cas restants on modifie .Text
                c.Text = ""
     
            Next
     
        End Sub
     
        Private Sub ChTexteDGV(ByVal d As System.Windows.Forms.DataGridView)
     
        End Sub
    si t'es sur une form, tu appelles ChTexteCtrls(me) et après c'est récursif
    et sinon le TypeOf n'accepte pas d'être dans un select case je crois ...
    merci beaucoup je vois plus clair , et effectivement datagridview n'accepte pas trop d'etre dans un select case.
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

Discussions similaires

  1. Réponses: 13
    Dernier message: 01/12/2005, 17h44
  2. Pb pour verouillé les controles d'un formulaire (VBA)
    Par Celia1303 dans le forum Access
    Réponses: 12
    Dernier message: 24/10/2005, 11h19
  3. Réponses: 5
    Dernier message: 07/09/2005, 08h27
  4. [MFC] Recuperer tout les control d'un CDialog
    Par mickaelguilbert dans le forum MFC
    Réponses: 6
    Dernier message: 11/08/2005, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo