1

VB.NET でフォームが閉じないようにするために、メッセージ ボックス ダイアログの代わりに新しいフォームを機能させる方法を教えてください。

さて、[X] ボタンをクリックするとポップアップが表示され、ユーザーが本当にプログラムを終了するかどうかを確認する新しいフォームを作成します。

[X] ボタンをクリックするとポップアップするフォーム I design は Message Dialog Yes/No に似ています。フォームの Yes と No として 2 つの画像ボックスを使用しました。

ポップアップするフォームの [はい] と [いいえ] の画像ボックスでこのコードを使用しました。

Private Sub picxyes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picxyes.Click

        Main.Close()
        about.Close()
        Me.Close()

    End Sub

Private Sub picxno_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picxno.Click
        Me.Close()

そして、これはフォームの終了イベントで:

e.Cancel = true
exitgame.Show()

'exitgame is the name of the form that will popup when [x] is click.

また、Private Sub picxyes_Click の下に e.Cancel = False を追加しようとしましたが、エラーが表示されます。

この画像ボックス (picxyes と picxno) の使用方法を知る必要があります。picxyes がクリックされた場合、e.Cancel が false に変わり、フォーム全体が閉じられる必要があります。それ以外の場合、picxno がクリックされた場合、exitgame フォームのみが閉じますか? これに役立つ可能性のあるアイデアを共有してください。ありがとうございました。

4

1 に答える 1

1

MessageBox.Show() はダイアログを表示します。ダイアログも作成したい:

Private Sub picxyes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picxyes.Click
    Me.DialogResult = DialogResult.OK
End Sub

Private Sub picxno_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picxno.Click
    Me.DialogResult = DialogResult.Cancel
End Sub

これで、FormClosing イベント ハンドラーで、MessageBox の場合と同様に、DialogResult を簡単に使用できます。

    If e.CloseReason = CloseReason.UserClosing Then
        Using dlg = New ExitGame
            If dlg.ShowDialog() = DialogResult.OK Then e.Cancel = True
        End Using
    End If
于 2013-12-07T16:45:04.877 に答える