none
VB2008  キーイベントを捕まえる事が出来ません RRS feed

  • 質問

  • VB2008 を勉強中です

     

    “キーイベント”等のキーワードでいろいろ検索してみたところ、それらしきコードがみつかったので貼り付けてみたのですが、エラーは出ないものの動かしてみると全く反応しません

     

    コード ↓

     

     

    Dim R As Keys

         

    “↑元はEnterキーだったのですが、実行中に押すとFormにはりつけていたButtonが反応してしっまたのでRキーに変えました。”

     

    Private Sub form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
            If e.KeyCode = R Then
                Label1.Text = "liuhukukh"
            End If
        End Sub

     

    どこが間違えてるのか教えて下さい。

     

    あと、FormのKeyPreviewは、Trueにしました

    2008年9月20日 8:16

回答

  • Kanek さん、こんにちは

    ダッチです。

     

    イベントハンドラが設定されていないだけだと思います。

     

    Handles Me.KeyDown を form1_KeyDown メソッドの後ろに追加してみてください。

     

    Code Snippet
    Private Sub form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)  Handles Me.KeyDown

     

     

     

    2008年9月20日 13:05

すべての返信

  •  Kanek さんからの引用

    Dim R As Keys

    それはKeys型のRという名前の変数にしかなりません。

    "Rキーを示す定数"はKeys.Rと書く必要があります。

         

     Kanek さんからの引用

            If e.KeyCode = R Then

    修正はここのRを適切に。e.KeyCode = Keys.Rでも、Dim R As Keys = Keys.Rでも。
    2008年9月20日 10:45
    モデレータ
  • 教えていただいた方法で試してみましたがうまくいきません

    コード ↓ は、これでいいですよね?

     

    宣言なし

     

    Private Sub form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
            If e.KeyCode = Keys.R Then
                Label1.Text = "liuhukukh"
            End If
        End Sub

     

    Timerを同時に動かしていますがそれは関係ないですか?
    2008年9月20日 11:28
  •  Kanek さんからの引用

    教えていただいた方法で試してみましたがうまくいきません

    ”何”を期待して、”どのようになった”のですか?

    それが分からない限り、何も答えようがないと思います。

     

     Kanek さんからの引用

    Timerを同時に動かしていますがそれは関係ないですか?

    それは期待する結果に影響するようなものなのですか?

    影響するのであれば、Timerで何をしているか説明しないと分かりません。

    2008年9月20日 13:01
    モデレータ
  • Kanek さん、こんにちは

    ダッチです。

     

    イベントハンドラが設定されていないだけだと思います。

     

    Handles Me.KeyDown を form1_KeyDown メソッドの後ろに追加してみてください。

     

    Code Snippet
    Private Sub form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)  Handles Me.KeyDown

     

     

     

    2008年9月20日 13:05
  • あ、VBだった。orz

    2008年9月20日 14:20
    モデレータ
  • ダッチさん、ありがとうございます!

     

    教えていただいた通り “Handles Me.KeyDown” を追加したところ問題解決できました。

     

    本当に助かりました

    2008年9月21日 2:57