VB2010にて、データグリッドビューを編集不可にしています。
数字と小数点は入力可能にしたいのですが、
下記のコードを実行すると、
1キーを押すと49と表示されます。
どうしたら、キー値を表示できるようになるのでしょうか?
ご存知の方教えてください。よろしくお願いします。
Private Sub DataGridView1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
'数字と小数点は入力可能
If e.KeyCode >= Keys.D0 And e.KeyCode <= Keys.D9 Or e.KeyCode >= Keys.NumPad0 And e.KeyCode <= Keys.NumPad9 Or e.KeyCode = Keys.Decimal Or e.KeyCode = 190 Then
e.Handled = True
strTemp = Me.DataGridView1(Me.DataGridView1.SelectedCells(0).ColumnIndex, Me.DataGridView1.SelectedCells(0).RowIndex).Value
strTemp = strTemp & e.KeyValue
Me.DataGridView1(Me.DataGridView1.SelectedCells(0).ColumnIndex, Me.DataGridView1.SelectedCells(0).RowIndex).Value = strTemp
End If
'バックスペース機能追加
If e.KeyCode >= Keys.Back Then
e.Handled = True
strTemp = Me.DataGridView1(Me.DataGridView1.SelectedCells(0).ColumnIndex, Me.DataGridView1.SelectedCells(0).RowIndex).Value
If strTemp = "" Then Exit Sub
strTemp = Microsoft.VisualBasic.Left(strTemp, Len(strTemp) - 1)
Me.DataGridView1(Me.DataGridView1.SelectedCells(0).ColumnIndex, Me.DataGridView1.SelectedCells(0).RowIndex).Value = strTemp
End If
If e.Control And e.KeyCode = Keys.V Then
'Ctrl+V押下時は貼付
DGV.Paste(DataGridView1)
ElseIf e.KeyCode = Keys.Delete Then
'Delete押下時は削除
DGV.Delete(DataGridView1)
End If
End Sub
お礼
すみません。編集可能にすると不都合がいろいろありまして。。。 >今のままでいくならselect~caseでキーコード単位で >文字を入れる処理を書くしかないでしょう。 これでやります。 ありがとうございました。