投稿日 | : 2003/01/09(Thu) 23:17 |
投稿者 | : はらだ |
URL | : |
タイトル | : FlexGridにおける列の最大桁数設定について |
お世話になっております。
はらだと申します。
私は現在、GrapeCity社FlexGridを使用したプログラムを作成しようとしています。
そこで、各列に対して最大桁数を指定し、”Accessのテーブルに対するセルへの直接入力”や、
”TextBoxでのMaxLength指定”での操作イメージのように、一定桁数以上はセルへのキー入力を
受け付けないようにしたいのですが、なかなかうまくいきません。
そこで、もし知っている方がいらしたら、教えて頂けないでしょうか。(VB6.0のMSFlexGrid
の場合でも構いませんので)
少し、わかりにくいかもしれませんが、サンプルコードを載せておきますので
よろしくお願いいたします。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
'セルのエディタ内でのKeyDownイベントです。(KeyPressイベントでも同じでした)
'ここで、セルのエディタ内で「1234567」と入力すると、「712345」と表示されてしまいます。
Private Sub FlexGrid_KeyDownEdit(ByVal sender As Object, ByVal e As C1.Win.C1FlexGrid.KeyEditEventArgs) _
Handles FlexGrid.KeyDownEdit
'テキストエディタ内のバイト数
Dim intByteLength As Integer = _
System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount(FlexGrid.Editor.Text)
'テキストエディタ内の文字数
Dim intLength As Integer = Len(FlexGrid.Editor.Text)
'1列目の長さが6バイトを超える場合は、カットする
Select Case e.Col
Case 1
If intByteLength >= 6 Then
FlexGrid.Editor.Text = _
Microsoft.VisualBasic.Left(FlexGrid.Editor.Text, intLength - 1)
Exit Sub
End If
End Select
End Sub