2017-08-16 1 views
0

Je suis coincé avec quelque chose que j'ai essayé de surmonter avant et ne pouvait pas. La dernière fois que j'ai travaillé autour, mais j'ai vraiment besoin de clouer ça.Appelez un formulaire Windows dynamiquement par son titre dans vb.net

J'ai un formulaire multi-instance qui répertorie les détails des travaux, de sorte qu'un utilisateur peut avoir 6 instances de ce formulaire ouvertes, toutes avec des informations différentes. Appelons ce formulaire A.

Dans le formulaire A, vous pouvez affecter ce travail à un utilisateur. En cliquant sur cette étiquette de lien ouvre un nouveau formulaire en utilisant showdialog où une zone de liste déroulante est remplie avec les utilisateurs connectés ... Appelons cette forme B.

Ce que je veux faire est de faire passer la valeur sélectionnée sur le formulaire B à la forme A, cependant parce que le formulaire A a plusieurs instances, je ne sais pas comment l'appeler.

Le formulaire A est JobDetails.vb, et a toujours un titre de formulaire "Job XXXXX Details", donc j'espérais qu'il y avait une façon dont je pourrais utiliser le titre pour l'appeler.

Espérons que tout a un sens! Merci d'avance, et des excuses si c'est une question stupide. Je pense que cela devrait être quelque chose d'évident, mais je ne peux tout simplement pas y arriver.

+0

Si vous savez quel est le titre du formulaire, vous devriez pouvoir mettre le formulaire actuel sur une variable séparée et y transmettre des données. –

+1

L'exemple de base sur la [page d'aide ShowDialog] (https://msdn.microsoft.com/fr-fr/library/c7ykbedk (v = vs.110) .aspx) fait presque ce dont vous avez besoin. Il obtient une valeur à partir du formulaire de dialogue lorsqu'il se ferme et le définit dans le formulaire principal. – Esko

+0

Donc c'est le cas! ok ... cet exemple cherche 'system.Windows.Forms.DialogResult.OK' pour dire quand vous avez fini avec le showdialog ... est-ce qu'il y a une manière que je peux rechercher un bouton pressé sur le formulaire de showdialog à la place? – John

Répondre

1

Comme indiqué sur la page d'aide de ShowDialog, vous pouvez facilement modifier le formulaire principal lorsque le formulaire de dialogue est fermé. Donc, vous pouvez faire quelque chose comme ceci:

Public Sub ShowMyDialogBox() 
    Dim testDialog As New Form2() 

    ' Show testDialog as a modal dialog and determine if DialogResult = OK. 
    If testDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK Then 

     Me.Text = String.Format("Jobs of {0}", testDialog.cmboUsers.SelectedValue) 
    Else 
     Me.Text = "Jobs" 
    End If 
    testDialog.Dispose() 
End Sub