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

VB.NET Discussion :

Récupérer une form en paramètre pour afficher un button [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Logisticien
    Inscrit en
    Avril 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Logisticien
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2021
    Messages : 17
    Par défaut Récupérer une form en paramètre pour afficher un button
    Bonjour,
    Je souhaiterais avoir un petit renseignement, comment puis-je récupérer le paramètre form dans une fonction ?
    Exemple :

    Dans ma FrmMenu je souhaiterais appeler une function qui m'affiche ou pas les menus en fonction de la form.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Private Sub FrmMenu_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            'appel de la function menuDetail qui me permet d'afficher ou non le button
    Call MenuDetail(ListeMenu,FrmMenu)
        End Sub
    Module.VB

    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
    Sub MenuDetail(ByVal menus As String, mavariable as  .... )
    'j'ai essayer windows.form mais cela ne fonctionne pas, pareil avec du string
     
    If ListeMenu = "commande" Then
     
    'lorsque je rentre FrmMenu cela fonctionne mais je ne trouve pas le type de variable à renvoyer
     
                FrmMenu.GunaAdvenceButton1.Text = "Sources des" & vbCrLf & "commandes"
                FrmMenu.GunaAdvenceButton2.Text = "Commandes" & vbCrLf & "par statut"
                FrmMenu.GunaAdvenceButton3.Text = "Détail des" & vbCrLf & "commandes"
                FrmMenu.GunaAdvenceButton4.Text = "Intégration" & vbCrLf & "fichier imprimeur"
                FrmMenu.GunaAdvenceButton5.Text = "Contrôle des" & vbCrLf & "commandes"
                FrmMenu.GunaAdvenceButton6.Text = "Créer commande" & vbCrLf & "en masse"
     
               ElseIf ListeMenu = "commerce" Then
     
               mavriable.GunaAdvenceButton1.Text = "Référencement"
               mavriable.GunaAdvenceButton2.Text = "Validation"
               mavriable.GunaAdvenceButton3.Text = "Commandes référencées"
               mavriable.GunaAdvenceButton4.Text = "Suivi prospection"
    end if
    end sub
    je vous remercie par avance.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 516
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 516
    Par défaut
    le paramètre sender informe de qui est à l'origine de l'appel de la méthode; mais windows.forms.form (ou plus simplement Form) devrait passer, au pire object et caster ensuite (si tu es bien dans un projet d'application windows Forms).

    Mais utiliser le nom d'un bouton (ou d'un contrôle) directement implique que le bouton (ou contrôle) en question existe

  3. #3
    Membre averti
    Homme Profil pro
    Logisticien
    Inscrit en
    Avril 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Logisticien
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2021
    Messages : 17
    Par défaut Récupérer une form en paramètre pour afficher un button
    Bonjour,

    Je te remercie pour l'info.
    Je viens de tester et j'arrive bien à récupérer la form via :
    Dim maForm as windows.form.form = FrmMenu (je passerais le nom en paramètre dans ma fonction)

    par contre lorsque je veux tester le contrôle via mon for each je n'arrive pas à récupérer mes button au sein de mon panel.

    Ne devrais-je pas avoir la possibilité d'interroger le panel au sein de maForm exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each ctr As Control In maForm.panel.controls
    avec ce type de boucle je n'arrive pas à interroger les buttons de mon panel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each ctr As Control In varlv.controls
                    If TypeOf ctr Is Guna.UI.WinForms.GunaAdvenceButton Then
                        If ctr.Name = "GunaAdvenceButton1" Then
                            ctr.Text = "Contrôles"
                        End If
                    End If
                Next
    Je te remercie par avance.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 516
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 516
    Par défaut
    ça devrait fonctionner si varlv est le conteneur parent (il faut son nom et pas le type du contrôle) donc par exemple maForm.Controls("Panel1") ou FrmMenu.Panel1

  5. #5
    Membre averti
    Homme Profil pro
    Logisticien
    Inscrit en
    Avril 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Logisticien
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2021
    Messages : 17
    Par défaut
    Oui voila j'ai bien réussi à récupérer ma form est à lire les buttons de celle-ci par contre, je voudrais modifier text du button via moncontrol.text = "NewValue" mais cela ne fonctionne pas. Il n'y a pas d'erreur de retour d'erreur dans le code, la console d'objet affiche bien la nouvelle valeur text mais dans la form il n'y a pas de modification.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     For Each ctr As Control In maform.Controls("GunaPanel2").Controls
                    If TypeOf ctr Is Guna.UI.WinForms.GunaAdvenceButton Then
                        If ctr.Name = "GunaAdvenceButton7" Then
                       ctr.text = "test"
    end if
    next
    J'ai recherché et il semblerait que le faite de passer par un module, bloque ma modification. Peux-tu également me donner quelques conseils sur le sujet s'il te plaît

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 516
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 516
    Par défaut
    J'ai fait un test, ça fonctionne chez moi. Il faudrait voir ton code complet (appel de la méthode, méthode complete)
    Dans ton code il doit manquer un "End If" on dirait (sauf si il y a un retour à ligne du au forum)
    Et si il y a des erreurs, ça serait bien aussi d'avoir leur message

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Hyperlien avec paramètre pour afficher une info d'une base SQLite
    Par olivier.eckmann dans le forum Android
    Réponses: 2
    Dernier message: 22/01/2013, 12h09
  2. Réponses: 3
    Dernier message: 26/01/2007, 23h41
  3. [C++.NET]Récupérer une form
    Par Asiany dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 07/01/2007, 12h55
  4. Réponses: 27
    Dernier message: 19/09/2006, 09h51
  5. Faire passer une table en paramètre pour une procedure
    Par samplaid dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/02/2006, 11h26

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