キーボードのキーを押したら○○する
投稿者 るきお  (社会人)
投稿日時
2010/5/3 18:05:51
こんにちは。
キーボードのどのキーが押されても区別なく○○するという
ことでいうことであれば、
まず、フォームのKeyPreviewプロパティをTrueに設定し、
その後でプログラムでフォームのKeyDownイベントにやりたいことを記述します。
例:
たとえば、押されたキーコードをフォームのタイトルに表示するには次のように書きます。
フォームのKeyPreviewをTrueにすることが重要ですのでお忘れないようにしてください。
この例だと、キーを押しっぱなしにすると何度も処理が繰り返されます。
これでやりたいことは合っていますか?
キーボードのどのキーが押されても区別なく○○するという
ことでいうことであれば、
まず、フォームのKeyPreviewプロパティをTrueに設定し、
その後でプログラムでフォームのKeyDownイベントにやりたいことを記述します。
例:
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
'ここに○○を書く
End Sub
たとえば、押されたキーコードをフォームのタイトルに表示するには次のように書きます。
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
Me.Text = e.KeyCode
End Sub
フォームのKeyPreviewをTrueにすることが重要ですのでお忘れないようにしてください。
この例だと、キーを押しっぱなしにすると何度も処理が繰り返されます。
これでやりたいことは合っていますか?
投稿者 るきお  (社会人)
投稿日時
2010/5/3 18:26:15
補足します。
上で紹介した方法でも
[TAB]キーや、[無変換]キーなど一部のキーでは反応できません。
もうちょっと使用するシーンが限定されれば全部のキーに反応することもできるかもしれません。
上で紹介した方法でも
[TAB]キーや、[無変換]キーなど一部のキーでは反応できません。
もうちょっと使用するシーンが限定されれば全部のキーに反応することもできるかもしれません。
投稿者 MANGA41  (小学生)
投稿日時
2010/5/3 18:46:04
ありがとうございました。
しなくても動きました。(忘れました)
プロパティには表示されませんでした。
しても、変化はありませんでした。
キーの指定もしたかったのですが、それは
お父さんに教えてもらいました。※ほかのキーもしました。
e.KeyCodeの内容は、Keys.○○としても表せるのはわかりやすいですね。
Me.KeyPreviw = True
しなくても動きました。(忘れました)
プロパティには表示されませんでした。
しても、変化はありませんでした。
キーの指定もしたかったのですが、それは
お父さんに教えてもらいました。※ほかのキーもしました。
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
Dim K = e.KeyCode
If K = Keys.A
MessageBox.Show("A")
'※省略して書いています。
End If
End Sub
e.KeyCodeの内容は、Keys.○○としても表せるのはわかりやすいですね。
投稿者 るきお  (社会人)
投稿日時
2010/5/3 21:11:17
こんにちは。
解決したようですが、KeyPreviewについて補足します。
フォーム上にイベントを受け取れるコントロールがない時にキーが押されたときはKeyPreviewがFalseの場合でもForm側のKeyDownなどのイベントでキーが押されたことを知ることができます。
今回の、MANGA41さんのプログラムはおそらくその状態になっていたのでKeyPreviewを設定しなくても良かったのだと思います。
いいプログラムを作ってくださいね。
解決したようですが、KeyPreviewについて補足します。
フォーム上にイベントを受け取れるコントロールがない時にキーが押されたときはKeyPreviewがFalseの場合でもForm側のKeyDownなどのイベントでキーが押されたことを知ることができます。
今回の、MANGA41さんのプログラムはおそらくその状態になっていたのでKeyPreviewを設定しなくても良かったのだと思います。
いいプログラムを作ってくださいね。
投稿者 MANGA41  (小学生)
投稿日時
2010/5/4 20:57:06
そうなんですか。KeyPreviewプロパティは、キーを押した時
他のコントロールに左右されないようにあるというわけですね。
ありがとうございました。
投稿プログラムにも使わせていただきます。
他のコントロールに左右されないようにあるというわけですね。
ありがとうございました。
投稿プログラムにも使わせていただきます。
小学二年くらいからVBプログラムやってます。()
質問ですが、
「キーボードのキーを押したら○○する」の方法がわかりません。
「キーボードのキーを押す」のではなく、キーボードを
押すと、処理をするというものです。
○○は、メッセージボックスでいいです。
こんど投稿プログラムも、させていただく予定です。
誰か「キーボードのキーを押したら○○する」の方法
知っている人は教えてください。