タイトル | : Re^2: FormClosing内でのButton1.PerformClick()について |
記事No | : 11238 |
投稿日 | : 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
|