Acceder à un controle dans un formulaire enfant.
jpvbf
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
jpvbf Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
jpvbf Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour
Je suis nouveau sur le forum et débutant en programmation VB2010. Jusqu'à présent je développais un programme en VB6 mais depuis le passage en Windows 10 je ne peux plus l'utiliser.
Mon problème est le suivant:
J'ai créé un formulaire parent avec un bouton pour ouvrir des formulaires enfant FclsChild2.
Le formulaire enfant comporte un bouton "fermer" et un Label Label1
Pour créer les formulaires enfant j'ai écrit le code :
Là j'arrive à écrire du texte dans Label1
Par la suite je veux modifier le texte de Label1 dans un formulaire enfant sélectionné. Pour sélectionner le formulaire enfant j'ai écrit la procédure suivante :
et je n'arrive pas à accéder au contrôle label1 pour modifier le test. L'erreur est la suivante :Erreur 1'label1' n'est pas un membre de System.Windows.Forms.Form'.
Je remercie par avance la personne qui pourra me sortir de cette impasse.
Je suis nouveau sur le forum et débutant en programmation VB2010. Jusqu'à présent je développais un programme en VB6 mais depuis le passage en Windows 10 je ne peux plus l'utiliser.
Mon problème est le suivant:
J'ai créé un formulaire parent avec un bouton pour ouvrir des formulaires enfant FclsChild2.
Le formulaire enfant comporte un bouton "fermer" et un Label Label1
Pour créer les formulaires enfant j'ai écrit le code :
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim Num As Integer For Num = 1 To 4 Dim Commande As New FclsChild2() Commande.MdiParent = Me Commande.Tag = Str(Num) Commande.Text = "Panneau " & Num Commande.Show() Commande.Label1.Text = "Vide" Next end sub
Là j'arrive à écrire du texte dans Label1
Par la suite je veux modifier le texte de Label1 dans un formulaire enfant sélectionné. Pour sélectionner le formulaire enfant j'ai écrit la procédure suivante :
Sub sel_Commande(Num As Integer) Dim Formulaire As Form For Each Formulaire In FclsMDIParent.MdiChildren If TypeOf Formulaire Is FclsChild2 Then Commande = CType(Formulaire, FclsChild2) If Commande.Tag = Str(Num) Then Commande.Focus() Commande.label1.text = "2" End If End If Next End Sub
et je n'arrive pas à accéder au contrôle label1 pour modifier le test. L'erreur est la suivante :Erreur 1'label1' n'est pas un membre de System.Windows.Forms.Form'.
Je remercie par avance la personne qui pourra me sortir de cette impasse.
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Acceder à un controle dans un formulaire enfant.
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Fan controle - Télécharger - Optimisation
- Alexa pour enfant - Guide
2 réponses
Bonjour
pour plus de lisibilité, pour tes prochains posts, merci d'utiliser la coloration syntaxique, voir explications ici.
Vb.Net est un très (très) différent de VB6, voir cet article, j'y fais mention d'un cours que je te conseille de suivre avant de reprendre ton projet.
Ton problème peux avoir 2 raisons:
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
pour plus de lisibilité, pour tes prochains posts, merci d'utiliser la coloration syntaxique, voir explications ici.
Vb.Net est un très (très) différent de VB6, voir cet article, j'y fais mention d'un cours que je te conseille de suivre avant de reprendre ton projet.
Ton problème peux avoir 2 raisons:
- VB.Net est sensible à la casse, donc label1 est différent de Label1
- Label1 est probablement un membre privé de ta classe (ce qui est une bonne pratique, et donc VS fait ainsi par défaut), tu pourrais le rendre public (ce serait alors une mauvaise pratique) ou alors utiliser les principes d'interaction entre formulaires, voir ce 3eme article.
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Alors oui, il est impossible de convertir un code vb6 en Vb.net. Ce sont deux langages très différents, car la philosophie de base est différente.
Pour ton problème, tu peux écrire une méthode publique dans ton formulaire enfant qui prend un string en paramètres et qui peux modifier le label.
Pour ton problème, tu peux écrire une méthode publique dans ton formulaire enfant qui prend un string en paramètres et qui peux modifier le label.
Re bonjour
J'ai trouvé. Ce ne doit pas être trop "propre" mais ça marche.
Dans un module "Définition des Variable" je définissais ma variable Commande : Public Commande as form en faisant :Public Commande As FclsChild2 qui est le formulaire avec le contrôle Label1 j'arrive à accéder au Label1.text.
J'arrive même a faire un tableau de formulaire en déclarant : Public Commande(5) As FclsChild2.
Ce n'est certainement pas digne d'un programmeur mais ça me permet d'avancer.
Encore merci
J'ai trouvé. Ce ne doit pas être trop "propre" mais ça marche.
Dans un module "Définition des Variable" je définissais ma variable Commande : Public Commande as form en faisant :Public Commande As FclsChild2 qui est le formulaire avec le contrôle Label1 j'arrive à accéder au Label1.text.
J'arrive même a faire un tableau de formulaire en déclarant : Public Commande(5) As FclsChild2.
Ce n'est certainement pas digne d'un programmeur mais ça me permet d'avancer.
Encore merci
Encore merci pour le temps passé.