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 6 et antérieur Discussion :

Initialisation d'une Form


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Avril 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1
    Par défaut Initialisation d'une Form
    J'ai créé une Form qui me sert soit a créer un compte soit a en modifier un existant.
    j'ai créé une variable public qui est initialisée avec "C" si je choisi le menu "Création" et avec "M" si je choisi le menu "Modification"
    je lance ma form avec l'instruction FORM.show
    Dans ma Form
    J'ai un contrôle de type Text qui me permet de saisir un compte a créer et un contrôle de type combobox qui me permet de choisir un compte dans la liste.

    Ces 2 contrôles ne doivent pas apparaitre ensemble dans ma form mais en fonction de ma variable initialisé a "M" ou "C". j'ai les lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form_Load()
     
    If gestcpt = "C" Then
      LstCpt.Visible = False
      Numcpt.Visible = True
     
    Else
      LstCpt.Visible = True
      Numcpt.Visible = False
    End If
    Malheureusement pour que ça marche il faut que je lance 2 fois le même menu lors de l'execution de mon programme. J'ai l'impression que l'initialisation se fait lorsque que je sors de la form et non lorsque j'y rentre.

    Merci de me dire ou est le probléme

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    A quel endroit, dans ton code, est initialisé la variable public gestcpt = "C" ? , Cette variable doit être initialisé avant le FORM.Show, car tu fais l'analyse dans le Form_Load, qui ne ce produit qu'une fois, au chargement.
    Si elle n'est pas initialisé avant le FORM.Show, la condition retenu est celle du Else, soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LstCpt.Visible = True : Numcpt.Visible = False
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut

    Voici une autre approche. Pas de variable publique mais une procédure publique pour la boîte de dialogue.

    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
    Option Explicit
     
    Private Sub Command1_Click()
        Me.Hide
    End Sub
     
    Public Sub InitialiserControles(psMode As String)
       Select Case psMode
         Case "C"
            Text1.Visible = True
            List1.Visible = False
         Case "M"
            Text1.Visible = False
            List1.Visible = True
       End Select
    End Sub
    Et pour la fenêtre principale :
    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
    Option Explicit
     
    Private Sub Form_Load()
        Load Form2
    End Sub
     
    Private Sub cmdModifier_Click()
        Form2.InitialiserControles "M"
        Form2.Visible = True
    End Sub
     
    Private Sub cmdNouveau_Click()
        Form2.InitialiserControles "C"
        Form2.Visible = True
    End Sub
     
    Private Sub cmdQuitter_Click()
        Dim f As Form
        For Each f In Forms
            Unload f
        Next
    End Sub
    C'est un peu tordu de charger la boîte de dialogue en même temps que la fenêtre principale. On peut aussi la charger dans la procédure événementielle, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub cmdModifier_Click()
        Dim f As Form2
        f.InitialiserControles "M"
        f.Visible = True
        ' code pour gérer les actions sur la boîte de dialogue
        Unload f
    End Sub

Discussions similaires

  1. Initialisation d'un composant d'une forme
    Par Invité dans le forum C++Builder
    Réponses: 4
    Dernier message: 03/07/2012, 21h52
  2. [VB6] [Excel] Feuille dans une form, sans excel installé
    Par ro2v dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 05/05/2010, 12h45
  3. Réponses: 9
    Dernier message: 19/08/2009, 10h43
  4. Initialiser des données d'une structure sur une form
    Par soso78 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 24/12/2007, 15h41
  5. [VB6][Formulaire]Appliquer un Scrollbar a une Form
    Par Boil dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/11/2002, 03h51

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