VB.NET Windows XP
この掲示板を参考にさせていただきながら、こつこつと作成しています。
リストビューにデータを表示して、そのいずれかを選択したらその行の
バックカラーを黄色に変更して随時入力されるデータを基に行のデータを
リアルタイムで書き換えています。キーダウンイベントで必要なキーのみを
受け付けるようにしてその他のキーは受け付けないようにしているのですが
スペースキーを押したら当該行の色が選択された状態(濃い青)に変わって
しまいます。動作そのものには影響がありませんがせっかく指定色に変更
したものが濃い青に変わってしまうので面白くありません。
どなたかよい解決法をご存知であれば御教授して下さい。
下記にキーダウンイベントを貼り付けています。
'****************************************************************************
'
' キーが押されたか
'
' 選択時はESC(受注№の直接入力)、F2(終了)、F8(良不良)、F10(選択)
' 準備・停止・非作業時はF2(終了)、F4(非作業)、F6(オーダーチェンジ)、F8(良不良)
' 稼動時は全てのキーを受け付けない
' 終了時はF2(終了)、F8(良不良)
'
'****************************************************************************
Private Sub Form_KeyDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
Dim i, a As Integer
Dim Ryfry As New Ryo_inp '良不良入力フォームの宣言
Select Case e.KeyCode
Case Keys.Home, Keys.End, Keys.PageDown, Keys.PageUp, Keys.Space
e.Handled = True 'ロールアップキー等を無効にする
End Select
Select Case Mode 'モードで分岐
Case M_sen '選択中
Select Case e.KeyCode
Case Keys.Escape 'ESCキー
Jinput() '受注№の入力
Case Keys.F2 'F2キー(終了)
Owari() '作業終了
Case Keys.F8 'F8キー(良不良)
Ryfry.Show()
Case Keys.F10 'F10キー
Kaisi() '作業開始
End Select
Case M_kad '稼動中
Select Case e.KeyCode
Case Keys.Down, Keys.Up, Keys.Left, Keys.Right
e.Handled = True '上下左右キーを無効にする
End Select
Case M_jun, M_tei, M_his '準備中、停止中、非作業中
Select Case e.KeyCode
Case Keys.Down, Keys.Up, Keys.Left, Keys.Right
e.Handled = True '上下左右キーを無効にする
Case Keys.F2 'F2キー(終了)
Owari()
Case Keys.F4 'F4キー(非作業)
Hisagyo()
Case Keys.F8 'F8キー(良不良)
Ryfry.Show()
Case Keys.F6 'F6キー(オーダーチェンジ)
Cheng()
End Select
Case M_end '終了モード?
Select Case e.KeyCode
Case Keys.F2 'F2キー(終了)
Owari()
Case Keys.F8 'F8キー(良不良)
Ryfry.Show()
End Select
End Select
End Sub
KeyPressイベントで自己解決いたしました。
ツイート | ![]() |