教えて!gooにおける不適切な投稿への対応について

いつもお世話になっております。
VB初心者です。ご理解のほど宜しくお願い致します。
データベースの入力画面でリストボックス1と2を二つ並べてあります。マウスクリックで選択できるのですが、操作性を良くする意味でキーボード入力にも対応させたいと思っております。
標準で矢印の↑←は上に移動します。↓→は下に移動します。
現状は[ESC]キーでリスト1と2を切り替えていますが操作性がとても悪いです。やはり←→キーでフォーカスを移動させたいです。
e.KeyChar = Chr(Keys.Left)
などとやってはみたのですが、受け付けてくれません。
ちなみにセレクト位置を移動させたリストボックスに反映させています。フォーカスを失ったリストボックスは再生成させてセレクトを消しています。
ご教授頂きたく宜しくお願いいたします。

gooドクター

A 回答 (3件)

KeyDown等では矢印ボタンなどのイベントはあがってきません。



参考になさってみてください、解決すると思います。
http://dobon.net/vb/dotnet/control/btndetectarra …
    • good
    • 3
この回答へのお礼

ご回答ありがとうございます。
→キーのイベントも発生しました。
内容も理解できました。
感謝します。

お礼日時:2009/02/03 13:34

環境と問題の箇所の最小コードを載せてくれたほうが回答つくと思いますよ~

この回答への補足

ご指導ありがとうございます。
Private Sub ListBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ListBox2.KeyPress
'Enterキーを取得してイベント発生
If e.KeyChar = Chr(Keys.Enter) Then
'リストボックスの項目が決定
End If
'ESCキーでリストボックスを2から1に切り替える
If e.KeyChar = Chr(Keys.Escape) Then
Dim se As Integer = ListBox2.SelectedIndex
listBoxSet()
ListBox1.Select()
ListBox1.SelectedIndex = se
End If
End Sub
上記のエスケープキーではなく←→キーを使いたかったものですから・・

補足日時:2009/02/03 11:54
    • good
    • 0

e.KeyCode = Keys.Left



ではどうでしょ。
    • good
    • 0
この回答へのお礼

早々のご回答ありがとうございます。
私が今使っているのはVB2008です。
e.KeyCodeが使えません(と思います)
変わりに[KeyChar]が出てくるのでそれを使っています。
Keys.Left
はリストボックスの上下移動に割り当てられているように思えます。
それを解除できれば?って感じなんですけど・・

お礼日時:2009/02/03 10:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング