Comment accéder aux composants des autres form ? [VB.Net] - C#/.NET managed - Programmation
Marsh Posté le 10-01-2005 à 16:41:19
Ouch, déjà si tu commences VB.NET, essaye de trouver des ressources sur la programmation orientée objet.
Dans ton cas, il faudrait une méthode publique pour accéder à ton composant privé, instancier ta form depuis le module et appeller la méthode qui va changer le texte du label...
Mais comme dit, commence par voir de l'orienté objet.
Marsh Posté le 10-01-2005 à 22:43:19
Merci de ta réponse,
j'ai regardé un peu de doc sur la POO en VB.Net
Est-ce que tu crois crois que créer un nouveau composant à partir d'un label et y ajouter une methode publique permettant de modifier sa propriété Text serait une bonne solution ?
Marsh Posté le 10-01-2005 à 22:45:27
regarde donc du coté de set/get, et file lire un tuto de POO
Marsh Posté le 10-01-2005 à 23:11:12
Bef@ a écrit : Merci de ta réponse, |
Moi je metterais la méthode dans la Form
Genre dans mon form :
Code :
|
Marsh Posté le 11-01-2005 à 12:38:06
ça y est ! je le tiens enfin...
Rooooo ske je sui content !
J'avais déjà essayé la methode que tu m'a donné sur le post précédent et j'avoues que je ne m'étais pas attardé dessus voyant que cela ne marchait pas...
Mais grâce à ton post j'ai finalement décidé de me bouger un peu plus les fesses !
Les languages .Net, comme tu le sais surement sont "Full Object"
Il est inutile en fait de rajouter une methode publique à form (la fenêtre dans laquelle se trouve lbl) car on peut accéder directement à sa propriété Text à partir d'une fonction d'un module (ou bien d'une autre fenêtre).
Il en fait dans cette methode créer une instance de form et ensuite lui affecter la fenêtre active de l'Appli, en gros, ça donne :
Module _mod
Public Sub ChangeLabelText(ByVal s As String)
Dim f As New form
f = form.ActiveForm
f.lbl.Text = s
End Sub
End Module
Merci encore pour votre Aide !
Marsh Posté le 11-01-2005 à 16:42:47
Ouais mais nan, là ça implique que lbl est public, ce qui est extrêmement déconseillé. Fallais faire comme moi, une méthode qui tripote au lbl. Ensuite y'a presque plus d'interêt aux modules en VB.NET....
Donc rebouge-toi les fesses Et change-nous tout ça
Marsh Posté le 11-01-2005 à 16:48:30
Okkkkaaaaayyyy je vien de comprendre l'intéré de la methode publique... alors on reprend :
'La methode publique dans form :
Public Sub ChangeLabelText(byval text as String)
Me.lbl.Text = text
End Sub
'Et le module :
Module _mod
Public Sub ChangeLabel(ByVal s As String)
Dim f As New form
f = form.ActiveForm
f.ChangeLabelText(s)
End Sub
End Module
Alors, qu'est ce que tu penses de ça cette fois-ci ???
Marsh Posté le 11-01-2005 à 19:52:03
Ahhhhh ba voilà, on y arrive enfin !
Merci beaucoup encore pour ton aide.
Marsh Posté le 10-01-2005 à 16:20:44
Bonjour,
Voilà je viens de passer de vb6 à vb.net et j'ai de très grosses difficultés...
Je vais faire clair avec un exemple très simple d'Appli Windows :
j'ai une form : form
un module mod
sur ma form j'ai un label : lbl
je voudrais faire une fonction f dans le module me permettant de changer le label, du genre :
sub f()
form.lbl.text = "Coucou !"
end sub
Bien sûr, cela ne marche pas...
Merci de votre aide !
---------------
// Bef@