タイトル : Re^3: FormClosing内でのButton1.PerformClick()について 投稿日 : 2014/03/04(Tue) 13:43 投稿者 : OrientalMelody
> Form2を追加し、以下のコード ですが、正確には、「Form2を追加、ボタンオブジェクトButton1を追加し、以下のコード」 でした。失礼いたしました。 > 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 |