0

私は VB6 を初めて使用しますが、大学のプロジェクトでコマンド ボタンやコントロール ツールを使用せずにフォームを閉じる方法を教えてください。

アプリケーションがアクティブまたはフォームがアクティブで、ユーザーがフォームよりも「W」キーを押すと、「END」/「UNLOAD」になるはずです。どうすればよいですか?

私はこれらのコードを試しました:

Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 27 Then
Unload Me
End If
End Sub

しかし、うまくいきませんでした。

4

2 に答える 2

2

Alt-F4Windows アプリケーション ガイドラインに準拠する他のほとんどのプログラムと同様に、VB6 の Form Close の組み込みホット キーです。

人々はまた、一般的にメニューオプション「Exit」を持ち、そのアクセラレータキーを「x」に設定します。そのため、「F」を含むファイルメニューと「x」を含むオプションExitがあり、ユーザーはAlt-F、xを入力して終了できます. この例として、メモ帳や他の何百ものプログラムを参照してください。

はい、ハック的なアプローチを使用できますが、なぜですか?

于 2013-10-05T22:16:55.360 に答える
2

KeyPreviewフォームのプロパティが に設定されていることを確認する必要がありTrueます。そうしないと、フォームがキーストロークを処理しません。また、大文字と小文字の両方をテストします。

Private Sub Form_KeyPress(KeyAscii As Integer)
    If KeyAscii = 87 Or KeyAscii = 119 Then  '87 is upper case 119 is lower case
        Unload Me
    End If

End Sub

Control や Alt などの修飾キーを確認する場合は、KeyDown代わりにフォームの EventHandler を使用します。

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If (Shift And 1) Then ' Test for Shift Key
        If (KeyCode = 87 Or KeyCode = 119) Then
            Unload Me
        End If
    End If

    If (Shift And 2) Then 'Test for Control Key
        If (KeyCode = 87 Or KeyCode = 119) Then
            Unload Me
        End If
    End If

    If (Shift And 4) Then 'Test for Alt Key
        If (KeyCode = 87 Or KeyCode = 119) Then
            Unload Me
        End If
    End If

End Sub
于 2013-10-05T17:10:13.600 に答える