15

VB2010Expressを使用しています。

ではC#、formsCancelButtonプロパティを設定します。

このVBフォームには、CancelButtonがないので、またはのいずれKeyPressかをプログラムする必要があると思われますKeyDown

  1. これら2つのイベントの違いは何ですか?
  2. どちらを使うべきですか?
  3. このための一般的なコードは次のとおりだと思いますか?:

    If e.KeyCode = Keys.Escape Then
        Close()
    End If
    

フォームの他のコントロール内に特定のコードがある場合、メインフォームに実際フォーカスが.Focusないため、これをメインフォームのイベントプロシージャに配置しても意味がありません。

4

4 に答える 4

36

フォームのキーダウンをに設定します

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
    If e.KeyCode = Keys.Escape Then Me.Close()
End Sub

次に、フォームのKeyPreviewプロパティをTRUEに設定することを忘れないでください。

于 2012-11-22T09:20:36.977 に答える
2

私の解決策は、フォームのプロパティにもあります。

  • CancelButtonプロパティをキャンセル機能を実行するボタンに設定します
于 2016-04-01T07:32:06.327 に答える
1
  1. 「VBフォームにはキャンセルボタンがありません」と言うので、非表示のボタンを付けます。 a。)ボタンをフォームに追加します。b。)VisibleプロパティをFalseに設定します。(コンピューターは間違いを犯さないことを忘れないでください-彼らは嘘をついています。だから、平等になりましょう。)
  2. フォームのプロパティメニューで、CancelButtonプロパティを非表示のキャンセルボタンに設定します。
  3. フォームのプロパティメニューで、KeyPreviewプロパティをTrueに設定します。
  4. 非表示のCancelButtonをダブルクリックして、Me.Dispose()を追加します
  5. これで、対処すべきMicro-Nastyの混乱が発生しました。構造化プログラミングの基本原則の1つは、「ルーチンからの出口は1つだけでなければならない」ということです。2つの異なる場所で終了ルーチンを処理する必要はありません。また、ユーザーは右上隅にある「Esc」を使用して外に出ることができます。構造化プログラミングと一体。それで 。。。
  6. 赤いボタンの右上にある黒い「X」はFormName_Deactivateを呼び出します。フォームの名前がFormSantaの場合、FormSanta_Deactivateです。簡単にするために、正しい方法を気にしないでください(ベルベットのスウェットショップのマイクロ農奴、私が泣いているのが聞こえますか?)右上の「X」ボタンと非表示の終了ボタンに同じコードを付けます。次に、Me.Close()を追加します
于 2015-06-14T18:37:20.110 に答える
0

フォームの「KeyPreview」プロパティをtrueに設定する必要があります。そうしないと、機能しません。

于 2015-05-08T23:26:43.353 に答える