タイトル | : Re^2: listboxクラス内でupキー入力判定の仕方(VB6) |
記事No | : 16258 |
投稿日 | : 2016/10/03(Mon) 22:48 |
投稿者 | : はさみ |
> > if System.Windows.Forms.KeyPressEventArgs.KeyUp = True Then > System.Windows.Forms 何某は、VB.NET で使われる記述です。 > まぁ、上記は VB6 でも VB.NET でも VBA でも NG ですが。 > > > VB6 で判定するとなれば、こんな感じですね。 > > Private Sub List1_KeyDown(KeyCode As Integer, Shift As Integer) > If KeyCode = vbKeyUp Then > Debug.Print "↑キーが押された", List1.ListIndex > End If > End Sub > > Private Sub List1_KeyUp(KeyCode As Integer, Shift As Integer) > If KeyCode = vbKeyUp Then > Debug.Print "↑キーが離された", List1.ListIndex > End If > End Sub > > > > MsgBox "リスト内で↑キーが押されたよ!" > こういう場合には MsgBox ではなく、上記のように Debug.Print を使うことをお奨めします。 > > > 「キー入力」や「マウス移動」、あるいは「フォーカス制御」のテストを行う場合、 > メッセージボックスを表示してしまうと、そこで処理が一時中断されるため、 > 本来の処理の流れが阻害されることになります。 > (たとえば、List1_KeyDown で MsgBox を出すと、List1_KeyUp が処理されないなど)
御回答有難うございます。 Debug.Print を使ってみましたが、凄く便利です。 これから使っていきます。
UPキーdownキーの入力処理についてですが、 もう一点質問させてください。
現在、下記をどのように修正すればいいか悩んでいます。 リストボックスclass内で、UPまたdownキー入力がされたかどうの判定値が取得できれば問題は解決できると思うのですが、可能でしょうか?
(問題) リストボックスを作成し、リストボックス内に表示した項目を選択。 項目選択後は、リストボックスclassで設定したプログラム処理A,処理Bが実行される。 その後、UPキー又はdownキーを押すと、リストボックス内の項目を選択したと判定され、処理A,処理Bが同じように実行される。 これを処理Aは実行せず、処理Bだけ実行されるプログラムに直したい。
|