2017-08-16 10 views
0

私は前に克服しようとしたことがありませんでした。 前回私はそれを取り組んだが、本当にこれを釘付けにする必要がある。vb.netのタイトルでWindowsフォームを動的に呼び出す

私は、ジョブの詳細をリストするマルチインスタンスフォームを持っています。したがって、ユーザーはこのフォームのインスタンスが6つほど開いていて、すべてが異なる情報を持っている可能性があります。フォームAに電話することができます。

フォームAには、そのジョブをユーザーに割り当てるオプションがあります。 そのリンクラベルをクリックすると、showdialogを使用して新しいフォームが開き、コンボボックスにログインしたユーザーが入力されます。フォームBを呼び出します。

フォームBに選択された値をフォームに戻しますしかし、フォームAには複数のインスタンスがあるので、どのように呼び出すかわかりません。

フォームAはJobDetails.vbで、常に「ジョブXXXXX詳細」のフォームタイトルを持っていますので、タイトルを使用して呼び出す方法があると思っていました。

すべてが意味をなさないことを願っています!事前に感謝し、愚かな質問の場合はお詫び申し上げます。私はこれが何か明白でなければならないと感じますが、私はそれを達成できません。

+0

フォームのタイトルが分かっていれば、実際のフォームを別の変数に置き、そこにデータを渡すことができます。 –

+1

[ShowDialogヘルプページ](https://msdn.microsoft.com/en-us/library/c7ykbedk(v = vs.110).aspx)の基本的な例は、ほとんど必要なものです。閉じたときにダイアログフォームから値を取得し、メインフォームに設定します。 – Esko

+0

それはそうです! ok ...その例では、showdialogで完了したときに 'system.Windows.Forms.DialogResult.OK'を検索します...代わりに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 
関連する問題