矢印キーでのセル移動を無効にするには?
対象製品
VS-FlexGrid Pro 8.0J
詳細
矢印キーの動作を制御するプロパティ等は用意されていませんが、非編集時はKeyDownイベントを、編集時はKeyDownEditイベントを使用して矢印キーの入力を無効にすることで実装可能です
◎サンプルコード(VB)
◎サンプルコード(VB)
' 非編集時の矢印キーを無効にします
Private Sub VSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
If (KeyCode = vbKeyRight) Or (KeyCode = vbKeyLeft) Or _
(KeyCode = vbKeyUp) Or (KeyCode = vbKeyDown) Then
KeyCode = 0
End If
End Sub
' 編集時の矢印キーを無効にします
' (セル内の値部分での移動は許可)
Private Sub VSFlexGrid1_KeyDownEdit(ByVal Row As Long, ByVal Col As Long, KeyCode As Integer, ByVal Shift As Integer)
With VSFlexGrid1
If (KeyCode = vbKeyRight And .EditSelStart = Len(.EditText)) Or _
(KeyCode = vbKeyLeft And .EditSelStart = 0) Or _
(KeyCode = vbKeyUp) Or _
(KeyCode = vbKeyDown) Then
KeyCode = 0
End If
End With
End Sub
Private Sub VSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
If (KeyCode = vbKeyRight) Or (KeyCode = vbKeyLeft) Or _
(KeyCode = vbKeyUp) Or (KeyCode = vbKeyDown) Then
KeyCode = 0
End If
End Sub
' 編集時の矢印キーを無効にします
' (セル内の値部分での移動は許可)
Private Sub VSFlexGrid1_KeyDownEdit(ByVal Row As Long, ByVal Col As Long, KeyCode As Integer, ByVal Shift As Integer)
With VSFlexGrid1
If (KeyCode = vbKeyRight And .EditSelStart = Len(.EditText)) Or _
(KeyCode = vbKeyLeft And .EditSelStart = 0) Or _
(KeyCode = vbKeyUp) Or _
(KeyCode = vbKeyDown) Then
KeyCode = 0
End If
End With
End Sub
キーワード
HowTo
この文書は、以前は次のFAQ IDで公開されていました : 11648