テキストボックスへの文字入力をバイト数で制限する

解決


ヒロ  2004-05-03 16:20:33  No: 113007  IP: [192.*.*.*]

はじめまして、いつも大変お世話になってます。
VB6でテキストボックスへの文字入力をバイト数で制限する方法を
お尋ねします。単なる
「制限バイト数を超えた入力は受け付けないテキストボックス」
が出来ずに悩んでます。
APIを使わない方法をご存知でしたら、どうか教えてください。

編集 削除
いな  2004-05-05 12:20:15  No: 113008  IP: [192.*.*.*]

KeyPressイベント、KeyDownイベントで
Lenを計算し、制限を越えていたら、0にすればよいと思います。

ちなみにImputManのimTextを使えばMaxLengthに値をいれるだけで済みます。

編集 削除
銀河系軍団  2005-08-16 13:23:51  No: 113009  IP: [192.*.*.*]

私も同じところで  詰まっております。
テキストボックスに  41バイト以上は入力できないようにしたいのですが

Private Sub txtNm_KeyPress(KeyAscii As Integer)

    txtNm.Locked = False

    If LenB(txtNm.Text) <= 40 Then
        
        txtNm.Locked = False

    ElseIf LenB(txtNm.Text) > 40 Then

        txtNm.Locked = True

    End If

End Sub

これだと  うまくいきません。
どうすればいいでしょうか?

編集 削除
銀河系軍団  2005-08-16 14:54:56  No: 113010  IP: [192.*.*.*]

これでうまくいきました。

Private Sub txtNm_KeyPress(KeyAscii As Integer)

    'バックスペースキーが押下された場合
    If KeyAscii = vbKeyBack Then
            
        'バックスペースを認識させる
        KeyAscii = vbKeyBack
    
    '氏名テキストに40バイト以上の文字列を入力した場合
    ElseIf LenB(StrConv(txtNm.Text, vbFromUnicode)) >= 40 Then

        '入力不可
        KeyAscii = 0
        
    End If

End Sub

編集 削除
dark  2005-08-16 19:38:15  No: 113011  IP: [192.*.*.*]

> 銀河系軍団さん

スレ主でないのに解決チェックをしないでください。
あなたは解決したけど、質問した本人は解決していないかもしれないですので。

編集 削除
通ってみた  2005-08-16 20:21:10  No: 113012  IP: [192.*.*.*]

夏ですのぅ・・・

編集 削除
いな  2005-08-16 20:29:29  No: 113013  IP: [192.*.*.*]

しかし、古臭いスレを見つけてみたもんだなぁ〜
スレ主結局あの後放置だったのねん

編集 削除
通ってみた  2005-08-16 23:03:08  No: 113014  IP: [192.*.*.*]

多いよねぇ自分がよければいいっていう質問者って

編集 削除