2012-12-18 5 views
3

Frist de tous désolé pour mon mauvais anglais. Je fais une application dans VB.NET et j'ai un petit problème. J'ai deux formes un FORM principal (toujours ouvert), et un que j'ouvre en tant que dialogue.VB.NET Pass Données entre les formulaires

Dans la forme secondaire (comme la boîte de dialogue ouverte) je peux choisir quoi faire et en fonction de ce que je choisis, je dois déclencher un événement dans le formulaire principal. Laissez-moi vous expliquer, Dans le formulaire enfant, je choisis le numéro de client 2, j'appuie sur OK, et le formulaire principal doit charger toutes les données liées au numéro de client 2.

Évidemment, être orienté objet vb.net Je ne peux pas appeler un sous-formulaire à partir d'un autre formulaire (parce que je n'ai pas accès à l'instance) et je ne peux pas en déclarer un nouveau, car le formulaire principal est toujours ouvert.

Comment puis-je transmettre l'ID du client et déclencher l'événement à charger?

Répondre

7

Expose l'ID client chez l'enfant par une propriété publique ou ami, par exemple (formulaire enfant):

Public Property CustomerID as Integer 

Private Sub OK_Click(s as Object, e as eventargs) Handles OK.Click 
    CustomerID = id 'pass the value here 
    Me.DialogResult = DialogResult.Ok 
End Sub 

Sur la principale forme alors:

If frmChild.ShowDialog = DialogResult.Ok Then 
    MessageBox.Show("Customer ID: " + frmChild.CustomerID) 
End If 
+0

Ne pas oublier les " Dim frmchild comme nouveau myOtherForm "... Je peux imaginer que ce soit très ennuyeux si vous ne le saviez pas depuis le début en tant que débutant en transmettant des données entre les formulaires. – deltu100

+0

Malheureusement, je suis un cinglé! Je sais que les données sont transmises à travers les propriétés et en théorie j'étais également conscient du fait que je pouvais utiliser la DialogBox mais au fur et à mesure que j'écris le code, je me demande toujours si c'est la bonne façon. Merci pour votre aide maintenant tout fonctionne! –

Questions connexes