2014-04-23 2 views
1

Je suis en train de retourner des données à partir d'un sous-formulaire j'ouvre avec ShowDialogVB.NET transmettre des données entre les formulaires. Comment attraper le résultat de DialogResult.OK

je me suis référé à cette question en cas de débordement de la pile: VB.NET Pass Data Between Forms

Voici le code. Je sais que le code que vous écrivez sur le sous-formulaire:

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 

Mais je ne sais pas où entrer le code qui va dans la principale forme

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

Je ne peux pas simplement coller ce code partout. Est-ce que je fais un sous-public pour coller ce code ou y a-t-il un autre moyen? Je veux juste commencer à lire les données à partir du sous-formulaire dès que le résultat de la boîte de dialogue est correct

+0

Vous n'avez pas besoin 'Me.DialogResult = DialogResult.Ok' dans le code, vous pouvez définir ce dans le concepteur pour chaque bouton dans votre boîte de dialogue forme. – Neolisk

Répondre

2

Cela dépend de la façon dont vous voulez afficher votre sous-formulaire. Voulez-vous l'afficher à la suite d'un clic sur un bouton? Si oui, vous pouvez mettre votre code dans le gestionnaire d'événements clic bouton:

Private Sub _showSubFormButton_Click(sender As System.Object, e As System.EventArgs) Handles _showSubFormButton.Click 
    Dim frmChild = New SubForm 

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

Merci pour la réponse. Je veux afficher dès que l'utilisateur appuie sur OK dans le sous-formulaire Et j'espérais qu'il y avait un moyen de le faire sans utiliser trop de chaînes publiques –

+0

Non, je veux dire, comment est-ce que le sous-formulaire lui-même est affiché? –

+0

I.e. qu'est-ce qui le fait apparaître? Est-il affiché lorsque l'utilisateur clique sur un bouton du formulaire principal? –

Questions connexes