Masalah ini sudah bertahun-tahun "menghantui" Penulis ketika sedang menggunakan MSFlexGrid pada Visual Basic 6.0. Karena jika menggunakan MSFlexGrid pada VB 6.0 secara default ketika program hasilnya dijalankan, pengguna tidak akan bisa mengedit isi cell Flex Grid dengan cara apapun. Jadi harus dari input TextBox lain baru bisa dimasukkan ke MSFlexGrid secara program.
Kemarin setelah terpaksa searching ternyata ada cara yang sangar cerdas untuk membuat agar MSFlexGrid bisa diedit (editable) dengan memanfaatkan event KeyPress yang akan menuliskan Karakter yang ditekan ke dalam Cell MSFlexGrid yang sedang aktif. Kok tidak sejak dulu ketemu ya :)
Private Sub fgMatriks_KeyPress(KeyAscii As Integer)
'http://cariprogram.blogspot.com
'nuramijaya@gmail.com
'sumber : http://www.freevbcode.com/ShowCode.asp?ID=3034
With fgMatriks
Select Case KeyAscii
Case 8: 'IF KEY IS BACKSPACE THEN
If .Text <> "" Then .Text = _
Left$(.Text, (Len(.Text) - 1))
Case 13: 'IF KEY IS ENTER THEN
Select Case .Col
Case Is < (.Cols - 1):
SendKeys "{right}"
Case (.Cols - 1):
If (.Row + 1) = .Rows Then
.Rows = .Rows + 1
End If
SendKeys "{home}" + "{down}"
End Select
Case Else
.Text = .Text + Chr$(KeyAscii)
'write your own keyascii Validations under
'commented lines
Select Case .Col
Case 0, 1, 2:
'if (your condition(s)) then
'accept only charectors
'Else
' keyascii=0
'End If
Case Else:
End Select
End Select
End With
End Sub
Semoga bermanfaat.