Commander un controle situer une forme depuis une autre form

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 361 fois - Téléchargée 31 fois

Contenu du snippet

Voila , j'ai recontre un probleme recement en voulant lancer un evenement situer sur une autre form , en vb6 on pouvait faire :

depuis la form1 : form2.textbox1.text = "blabla"

en vb.net , bizarrement , le seul moyen d'arrive a cela est d 'appliquer la solution la plus rependu soit :

dim M_form as new form2
M_form.textbox1.text = "blabla"
M_form.show

mais le gros probleme c'est quand lancant ce code , tous les controles situer sur la form2 se retrouve reinitialisé
ce qui est parfois tres embettant !

donc voici le code a utiliser pour eviter cela : je sais que ca rendra service :=)

merci a liquide qui m'a souflé ce code.

Source / Exemple :


'dans un module :

    Public FormForm1 As Form1
    Public FormForm2 As Form2

    Public Function Loadform1(ByVal fo As Form)
        FormForm1 = fo
    End Function

    Public Function Loadform2(ByVal fo As Form)
        FormForm2 = fo
    End Function

'dans l'evenent load de chaque form : exemple dans la form1
Call loadform1(me)

'dans l'evenent load de chaque form : exemple dans la form1
Call loadform2(me)

'on peut ensuite appeler le controle de n'importe kel form sans reintialiser via new form

'exemple dans la form2

With FormForm1
    .textbox1.text = "blabla"
End with

'exemple dans la form1

With FormForm2
    .textbox1.text = "blabla"
End with

A voir également

Ajouter un commentaire

Commentaires

Messages postés
8
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
26 novembre 2008

thx :)
Messages postés
1018
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008

Remarquez, ca aussi fonctionne tres bien :
Public Sub LoadMem(ByVal NForm As Form)
If TypeOf NForm Is Form1 Then
NForm1 = Form1
ElseIf TypeOf NForm Is Form2 Then
NForm2 = Form2
End If
End Sub
Messages postés
1018
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008

Salut, sinon dans 1 seule procédure (ça evite d'en avoir beaucoup) :
Public NForm1 As Form1
Public NForm2 As Form2

Public Sub LoadMem(ByVal NForm As Object)
If TypeOf NForm Is Form1 Then
NForm1 = CType(NForm, Form1)
ElseIf TypeOf NForm Is Form2 Then
NForm2 = CType(NForm, Form2)
End If
End Sub
Messages postés
14
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
1 novembre 2007

J'utilises VB8 (.net 2005) et je suis heureux d'annoncer que ce problème est réglé dans cette version. Merci quand même d'avoir enregistrer ce bout de code! ^_^

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.