2017-01-31 7 views
0

2つのボタンでダイアログを開きます。これらのボタンは、プロパティを値に設定し、フォームを閉じる必要があります。私のメインフォームは、そのプロパティを取得する必要があります。値をつかむときはいつも、それは常に空白です。ダイアログが閉じられる前にダイアログのプロパティが設定されることはありませんか?

私のメインフォーム

Using SelectNextForm As New TubeSelectTo() 
    SelectNextForm.Focus() 
     If TubeSelectTo.ShowDialog(currentWO, status) = Windows.Forms.DialogResult.OK Then 
      MessageBox.Show(SelectNextForm.numberOfBins) 
     End If 

ダイアログ

Private numberBins As String 

Public Overloads Function ShowDialog(ByVal woID As String, ByVal currStatus As ResourceStatus) As DialogResult 

    Return Me.ShowDialog() 

End Function 

Public ReadOnly Property numberOfBins() As String 
    Get 
     Return numberBins 
    End Get 
End Property 

Private Sub btn1_Click(sender As System.Object, e As System.EventArgs) Handles btn1.Click 
    numberBins = "1" 
    DialogResult = Windows.Forms.DialogResult.OK 
End Sub 

Private Sub btn2_Click(sender As System.Object, e As System.EventArgs) Handles btn2.Click 
    numberBins = "2" 
    DialogResult = Windows.Forms.DialogResult.OK 
End Sub 

なぜ私のプロパティが設定されていませんか?

+0

あなたは私たちに 'numberBins'宣言aswellを表示する必要があります。全く新しいプロジェクトでこれをテストしましたか? –

+0

"ダイアログ"コードが 'TubeSelectTo'用のものであれば、ビンの設定フォームよりも別のフォーム(' SelectNextForm')を求めています。また、そのコードでは、numBinsはどこからでも表示されます。 – Plutonix

+0

@Plutonixあなたはそれを持っています。回答として投稿し、私はそれを受け入れるでしょう – AlexF11

答えて

1

あなたの問題はここにある:

If TubeSelectTo.ShowDialog(currentWO, status) = Windows.Forms.DialogResult.OK Then 

あなたはむしろあなたが作成したSelectNextFormインスタンスよりも、TubeSelectToフォームのdefault instanceを使用しています。

変更はそれがに:

If SelectNextForm.ShowDialog(currentWO, status) = Windows.Forms.DialogResult.OK Then 
関連する問題