Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1640 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [VB.Net] Comment accéder aux composants des autres form ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB.Net] Comment accéder aux composants des autres form ?

n°950128
Bef@
Pas de Bras, pas de Chocolat !
Posté le 10-01-2005 à 16:20:44  profilanswer
 

Bonjour,  
Voilà je viens de passer de vb6 à vb.net et j'ai de très grosses difficultés...  :heink:  
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...   :cry:  
Merci de votre aide !


---------------
// Bef@
mood
Publicité
Posté le 10-01-2005 à 16:20:44  profilanswer
 

n°950148
FlorentG
Posté le 10-01-2005 à 16:41:19  profilanswer
 

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.

n°950448
Bef@
Pas de Bras, pas de Chocolat !
Posté le 10-01-2005 à 22:43:19  profilanswer
 

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 ?


---------------
// Bef@
n°950450
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 10-01-2005 à 22:45:27  profilanswer
 

regarde donc du coté de set/get, et file lire un tuto de POO


---------------
J'ai un string dans l'array (Paris Hilton)
n°950465
FlorentG
Posté le 10-01-2005 à 23:11:12  profilanswer
 

Bef@ a écrit :

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 ?


 
Moi je metterais la méthode dans la Form :)
 
Genre dans mon form :

Code :
  1. Public Sub ChangeLabelText(byval text as String)
  2.   Me.lbl.Text = text
  3. End Sub

n°950662
Bef@
Pas de Bras, pas de Chocolat !
Posté le 11-01-2005 à 12:38:06  profilanswer
 

ça y est ! je le tiens enfin...
Rooooo ske je sui content ! :D
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 !


---------------
// Bef@
n°950906
FlorentG
Posté le 11-01-2005 à 16:42:47  profilanswer
 

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 :D Et change-nous tout ça ;)

n°950910
Bef@
Pas de Bras, pas de Chocolat !
Posté le 11-01-2005 à 16:48:30  profilanswer
 

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 ???


---------------
// Bef@
n°951065
FlorentG
Posté le 11-01-2005 à 19:24:55  profilanswer
 

Voilà, là ça me plaît :)

n°951088
Bef@
Pas de Bras, pas de Chocolat !
Posté le 11-01-2005 à 19:52:03  profilanswer
 

Ahhhhh ba voilà, on y arrive enfin !
Merci beaucoup encore pour ton aide. :)


---------------
// Bef@

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [VB.Net] Comment accéder aux composants des autres form ?

 

Sujets relatifs
interface .NETagrandir une form avec un bouton
[C#] MagicBuzz qui se remet au .NET, ça va être bô tiens !J'arrive pas à accéder à mes pages perso neuf!
Composants Indy et ports UDP/TCPimpossible d'ajouter des composants OCX sur VB6 [Résolu]
href -> form->postla référence .net FrameWork
Mettre des fichiers sons non téléchargeables sur le netacceder au shell d un modem sur com1?
Plus de sujets relatifs à : [VB.Net] Comment accéder aux composants des autres form ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR