chocopops91
Messages postés7Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention30 octobre 2011
-
26 oct. 2011 à 18:17
chocopops91
Messages postés7Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention30 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... ;)
NHenry
Messages postés15069Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention29 mai 2023158 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
NHenry
Messages postés15069Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention29 mai 2023158 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
NHenry
Messages postés15069Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention29 mai 2023158 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
chocopops91
Messages postés7Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention30 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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
chocopops91
Messages postés7Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention30 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 ?
chocopops91
Messages postés7Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention30 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 ;)
chocopops91
Messages postés7Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention30 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...
chocopops91
Messages postés7Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention30 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...