Modifier textbox d'une window form à partir d'une autre window form

Résolu
chocopops91 Messages postés 7 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 30 octobre 2011 - 26 oct. 2011 à 18:17
chocopops91 Messages postés 7 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 30 octobre 2011 - 30 oct. 2011 à 12:30
Bonjour,

Je me lance, et m'inscrit sur ce forum après avoir cherché ma solution en vain...

Avec VB Express 2010, j'ai créé :

1- La window form principal de mon application (appelé HOME).

2-La window form enfant de Home : (appelé NewDoc)

J'ai donc une interface Home, qui me permet de lancer l'interface "NewDoc", ainsi que d'autre fonction. Une fois l'interface NewDoc lancé, elle se superpose à l'interface Home.

Ensuite, j'ouvre une boite de dialogue à partir du Menu de Home pour y rentrer des infos.
J'aimerai qu'une fois cette boite de dialogue validée, les TextBOx de "NewDoc" s'actualise.

Cette boite de dialogue n'est parent ni enfant de personne.



Public Class DialogBox

    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click

        NewDoc.TextBox1.Text = Me.TexBox1.text
        NewDoc.TextBox2.Text = Me.TexBox2.text

        Me.Close()
    End Sub



Comment faire pour contrôler la TextBox de mon formulaire "NewDoc" à partir du formulaire "DialogBox" ?


Autre question au passage, existe-t-il un moyen de détecter que le formulaire est déjà ouvert, et ainsi de ne pas le rouvrir lorsqu'on clique sur l'évenement pour l'ouvrir?
Actuellement je fais ceci :
   
Public Class Home

 Private Sub NewCalibrationToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewCalibrationToolStripMenuItem1.Click
        Dim NewDoc As New NewDoc

        NewDoc.MdiParent = Me

        NewDoc.Show()

    End Sub
End Class


Merci beaucoup à ceux et celles qui sauront me faire avancer dans mes petits problèmes... ;)
A voir également:

9 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
26 oct. 2011 à 20:31
Bonjour,

Public Shared MaForm as Form1

Form1_Load ...
MaForm=Me

Form1.MaForm.TextBox1.Text=..."

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
27 oct. 2011 à 12:30
Bonjour,

Utilises la variable Public Shared de ton Form1, et si la valeur est Nothing, tu créé le formulaire, sinon, tu fais : MaForm.MaVariable.Show(...)

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
26 oct. 2011 à 19:01
Bonjour,

MaFormCibleChargee.TexBox1.Text="..."

Pour le 2, tu peux mettre une variable shared publique qui contiendra l'instance chargée, puis tu fera :
MaClasseCible.MaVariableShared.Show()

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
chocopops91 Messages postés 7 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 30 octobre 2011
26 oct. 2011 à 19:58
Merci pour cette réponse rapide.
Malheureusement, en faisant quelque chose du genre MaFormCibleChargee.TexBox1.Text="..." , ça ne fonctionne pas. J'ai l'impression que la windows form modal n'a pas d'influence sur l'autre window form...

Pour le 2, pourrais tu me développer comment faire pour mettre une variable shared public qui contient l'instance chargée? je suis novice en vb...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chocopops91 Messages postés 7 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 30 octobre 2011
27 oct. 2011 à 09:58
Super, j'ai réussi à changer le textbox d'un autre formulaire ;) Merci beaucoup.

En revanche, je n'ai pas réussi à empêcher le même formulaire de s'ouvrir plusieurs fois si on clique sur le bouton pour l'ouvrir.

Voici ce que je fais :

Dans le formulaire Home, j'ai un bouton qui lance form1 :
Public Class Home
      Private Sub NewFormItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewFormToolStripMenuItem1.Click
        Dim FOrm1 As New FOrm1

        Form1.MdiParent = Me

        Form1.Show()

    End Sub
End Class


'Et au démarrage de form1, je lance ceci :
Public Class FOrm1

    Public Shared MaFOrm As NewCalibLayout
End Class


Comment empêcher form1 de s'ouvrir plusieurs fois à chaque fois qu'on cliquera sur le bouton dans le formulaire Home ?
0
chocopops91 Messages postés 7 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 30 octobre 2011
27 oct. 2011 à 13:47
J'ai réussi! Merci beaucoup!

Pour les débutants comme moi qui ont le même genre de problème, je poste la solution traduite en code :

If form1.Maform is NOthing then
  Form1.show()
Endif
0
chocopops91 Messages postés 7 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 30 octobre 2011
27 oct. 2011 à 13:50
En tout cas, tu es vraiment très serviable NHenry, tu m'as débloquer et m'a fait gagner pas mal d'heures de recherches...
Encore un grand merci! Tu auras probablement l'occasion de lire de nouvelles question de ma part, car dans quelques jours je me lance dans la communication de mon appli avec une base access. Je vais probablement rencontrer tout un tas de difficultés ;)
0
chocopops91 Messages postés 7 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 30 octobre 2011
30 oct. 2011 à 12:15
Bonjour,
Me revoici avec une question.

Pour éviter qu'un formulaire ne soit lancer plusieurs fois de suite, je testais si celui ci est déjà créé en mettant un variable public shared dans mon formulaire, et je test si la variable est "nothing" avant de le lancer :




    Private Sub NewCalibrationToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewCalibrationToolStripMenuItem1.Click
        Dim NewCalibLayout As New NewCalibLayout

        NewCalibLayout.MdiParent = Me

        If NewCalibLayout.FormNewCalibLayout Is Nothing Then
            NewCalibLayout.Show()
        End If
end sub


Ca fonctionne très bien, car ça me permet de ne pas ouvrir plusieurs fois le même formulaire tant que celui ci est chargé.

Mais lorsque j'ai fermé le formulaire, j'aimerai bien pouvoir le rouvrir! Mais la variable public shared ne se remet pas sur "nothing", donc le formulaire ne se lance pas...

Pour fermer le formulaire, j'ai essayé me.close et Me.dispose, mais sans succès...
Avant de fermer le formulaire, j'ai aussi essayé de faire
NewCalibLayout.FormNewCalibLayout =
Mais dans ce cas là, la fonction me.close() ne fonctionne plus...
0
chocopops91 Messages postés 7 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 30 octobre 2011
30 oct. 2011 à 12:30
je vous ai embêté pour rien...
J'initialise ma variable shared à nothing juste avant de fermer mon formulaire, et le tour est joué. Je me trompais juste dans la syntaxe...
0
Rejoignez-nous