|
分類:[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
|