• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ダイアログの結果が反映されません…)

ダイアログの結果が反映されません

このQ&Aのポイント
  • VB2005で画像を使った距離計測プログラムを作成中。ダイアログを開いても結果が反映されない。
  • 目的のコードの一部は、二点間の直線を描いてダイアログを表示し、ダイアログのテキストから数字を取得して表示する。
  • ダイアログの結果を反映させるためにはどうすれば良いか。

質問者が選んだベストアンサー

  • ベストアンサー
  • HIROs-NET
  • ベストアンサー率78% (15/19)
回答No.1

まずは、 Dialog2.Show() ではなく Dialog2.ShowDialog() にする必要があると思います。 ShowDialog()メソッドは、そのフォームが閉じられて初めてDialogResultを返します。 Showメソッドの場合は、Show()の実行後すぐに次の行のコードが実行されてしまいます。 よって、Dialog2で値を入力する前に(Dialog2が開かれた時点で) If Dialog2.DialogResult = Windows.Forms.DialogResult.OK Then が実行されてしまうことが原因だと思います。 (Ifのところにブレークポイントを置いてみるとわかると思います) あとDialog2側で、ダイアログが閉じられるときにDialogResultを設定していますか? たとえばButton1がクリックされたときにダイアログを閉じて、DialogResultを設定する場合は Private Sub Button1_Click(~省略~) Me.DialogResult = Windows.Forms.DialogResult.OK Me.Close() End Sub のように記述する必要があります。

tanaka-yaa
質問者

お礼

早速のご返信、ありがとうございます。 すぐに試してみたところ、ちゃんと処理が行われるようになりました。 Dialog2.Show() だけでは見せるだけですぐ下に処理が行ってしまうんですね。 勉強になりました。

関連するQ&A