タイトル : Re^2: FormClosing内でのButton1.PerformClick()について 投稿日 : 2014/03/04(Tue) 11:52 投稿者 : OrientalMelody
VBレスキュー(花ちゃん)様 迅速なご回答、大変有難うございます。 確かに仰るとおり、Form1がスタートアップフォームでは、私の環境でも問題ないようです。 考えたら、実アプリでは、Menu画面から呼び出された画面で起こることに気がつきました。 Form2を追加し、以下のコード Public Class Form2 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim Form1 As New Form1 Form1.ShowDialog() Form1.Dispose() End Sub End Class を追加後、スタートアップフォームを Form2 にして頂いてから試してみていただけませんでしょうか? こちらの環境では必ず再現いたします。 恐れ入りますが、宜しくお願いいたします。 > 下記のような動作でよいのですよね。 > 問題がないように思うのですが? > > Public Class Form1 > > Private m_bChangeFlg As Boolean > > Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load > m_bChangeFlg = True > End Sub > > Private Sub cmdSave_Click(sender As System.Object, e As System.EventArgs) Handles cmdSave.Click > MessageBox.Show("保存しました") > m_bChangeFlg = False > End Sub > > Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing > If m_bChangeFlg Then > Select Case MsgBox("データが変更されています。保存しますか?", vbYesNoCancel, Me.Text) > Case vbYes > cmdSave.PerformClick() > If m_bChangeFlg Then > e.Cancel = True > Exit Sub > End If > Case vbNo > Case vbCancel > e.Cancel = True > Exit Sub > End Select > End If > End Sub > > End Class |