C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: form2を閉じるともう一度form2が開いてしまうのはナゼ


(過去ログ 93 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■55911 / inTopicNo.1)  form2を閉じるともう一度form2が開いてしまうのはナゼ
  
□投稿者/ lino. (2回)-(2010/12/17(Fri) 20:52:58)

分類:[VB.NET/VB2005 以降] 

2010/12/17(Fri) 21:02:02 編集(投稿者)

すいません。手違いで二つ同じ内容のスレッドを作ってしまいました。


お世話になります。
vb2008を使っております。
Form1のRadioButtonをクリックするとForm2が開き、Form1のPictureBoxに表示していたイメージを
Form2のPictureBoxに表示するというプログラムを作っています。この時、Form2に用意したキャンセルボタンを
押すとForm2を閉じるようにしたのですが、なぜか、閉じたあとすぐにまたもう一度Form2が開くのです。
で、その開いた二度目のForm2で、もう一度キャンセルボタンをクリックすると、ちゃんとForm2が閉じられます。
最初そのバグを発見した時、Form1のRadioButtonがForm2を閉じた後もクリック状態のままだったので、ここに
RadioButton8.Checked = Falseを追加したのですが、二度Form2が開いてしまう状態は変わらず、しかしRadioButtonは
RadioButton8.Checked = Falseになっていました。
私は一度目のクリックでForm2を閉じるようにしたいので、どのようにすれば二度開かないようになるのか、
教えていただけないでしょうか。
ちなみにForm2では、表示したイメージに加工を施した後、OKボタンをEnabled=Trueにして(開いた時点ではFalse)、
OKをクリックすると、Form2を閉じてForm1にForm2で加工した結果を表示させるのですが、
OKの場合は二度Form2が開くことはありません。
以下がそのコードです。RadioButton8とかButton3とかになっている点は飛ばして下さい。


'form1
Private Sub RadioButton8_CheckedChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles RadioButton8.CheckedChanged

If RadioButton8.Checked = True Then

'form2作成
Dim settingForm As Form2
settingForm = New Form2
settingForm.Owner = Me

'form2に画像を表示
settingForm.PictureBox1.Image = PictureBox1.Image

'form2でokが押された時のイベント
If settingForm.ShowDialog() = Windows.Forms.DialogResult.OK Then
'form2の結果をform1に表示
PictureBox1.Image = settingForm.PictureBox1.Image

RadioButton8.Checked = False

'form2でキャンセルが押された時のイベント
ElseIf settingForm.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
RadioButton8.Checked = False
End If

settingForm.Dispose()
End If

End Sub

'form2
Private Sub Form2_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load

'ok
Button1.DialogResult = Windows.Forms.DialogResult.OK
'キャンセル
Button3.DialogResult = Windows.Forms.DialogResult.Cancel

End Sub

  'キャンセル
Private Sub Button3_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button3.Click

Close()

End Sub

引用返信 編集キー/
■55913 / inTopicNo.2)  Re[1]: form2を閉じるともう一度form2が開いてしまうのはナゼ
□投稿者/ ナゼでしょう? (1回)-(2010/12/17(Fri) 21:18:47)
-------------------------------------------------------------------------
If settingForm.ShowDialog() = Windows.Forms.DialogResult.OK Then

ElseIf settingForm.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
-------------------------------------------------------------------------

一度目のShowDialog()でキャンセルボタンを押すと
もう一度ShowDialog()されるようになってますが。。。

↓こんな感じでどうでしょう。
-------------------------------------------------------------------------
Dim res As Windows.Forms.DialogResult = settingForm.ShowDialog()

If res = Windows.Forms.DialogResult.OK Then

Else

End If
-------------------------------------------------------------------------
引用返信 編集キー/
■55923 / inTopicNo.3)  Re[2]: form2を閉じるともう一度form2が開いてしまうのはナゼ
□投稿者/ lino. (3回)-(2010/12/17(Fri) 23:12:05)
No55913 (ナゼでしょう? さん) に返信

> ↓こんな感じでどうでしょう。
> -------------------------------------------------------------------------
> Dim res As Windows.Forms.DialogResult = settingForm.ShowDialog()
>
> If res = Windows.Forms.DialogResult.OK Then
>
> Else
>
> End If
> -------------------------------------------------------------------------


おお、おお、おお〜!
できました!
こんな初歩的ミスに丁寧に指導下さり、ありがとうございます!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -