2017-08-16 90 views
0

我被我试图克服的东西卡住了,并且不能。 上次我解决它,但我真的需要指出这一点。在vb.net中动态调用一个windows窗体的标题

我有一个多实例的表单,列出了作业的详细信息,所以用户可能会打开6个左右的表单实例,所有这些实例都有不同的信息。让我们打电话给那个表格A.

在表单A中有一个选项可以将这个工作分配给用户。 点击该链接标签将使用showdialog打开一个新窗体,其中组合框中填写登录用户...让我们打电话给该窗体B.

我想要做的是在窗体B上选择的值传递回窗体A,但是因为表单A有多个实例,所以我不知道如何调用它。

表单A是JobDetails.vb,并且总是有一个表单标题“Job XXXXX Details”,所以我希望有一种方法可以使用标题来调用它。

希望大家有道理!预先感谢,如果它是一个愚蠢的问题,表示歉意。我觉得这应该是明显的,但我无法实现。

+0

,你应该能够把实际的形式,在一个单独的变量,并通过任何数据存在。 –

+1

[ShowDialog帮助页面](https://msdn.microsoft.com/en-us/library/c7ykbedk(v = vs.110).aspx)上的基本示例几乎可以满足您的需求。当它关闭并在主窗体上设置时,它从对话窗体中获得一个值。 – Esko

+0

所以它!好的...该示例查找'system.Windows.Forms.DialogResult.OK',以说明何时完成showdialog ...有没有一种方法可以查找按下showdialog表单上的按钮? – John

回答

1

如帮助页面ShowDialog所示,可以在对话框窗体关闭时轻松更改主窗体。所以你可以做这样的事情:如果你知道窗体标题是什么

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