入力文字の制限


だい  2003-10-09 22:01:04  No: 79723

テキストボックスに入力できる文字を制限したいのですが
可能でしょうか?希望としては半角数字のみで7桁です。


イトウ  2003-10-09 22:14:04  No: 79724

マルチポスットぽいですが…

とりあえず、テキストボックスのプロパティのすべての動作を覚えましょう。
MaxLengthなんか特に。


吉野  2003-10-14 21:33:16  No: 79725

こんな感じでしょうか?
このコードですと、キー入力時のみチェックが入るので、貼り付け以外は対処できます。
貼り付けされると入力禁止文字も入ってしまうので、何らかの工夫が必要です。

<コード>
Private Sub Text1_KeyPress(KeyAscii As Integer)
    '数値若しくは[BackSpace]以外又は、7桁以上は入力不可
    If Not IsNumeric(Chr$(KeyAscii)) And KeyAscii <> vbKeyBack Or _
       (Len(Text1.Text) >= 7 And KeyAscii <> vbKeyBack) Then
        KeyAscii = 0
    Else
        '全角を半角に変換する
        KeyAscii = Asc(StrConv(Chr$(KeyAscii), vbNarrow))
    End If
End Sub


だい  2003-10-15 23:36:42  No: 79726

VB.NETではエラーが出てしまい、だめでした。
ほかに方法はないのでしょうか?


dai  URL  2003-10-16 18:21:40  No: 79727

http://dobon.net/vb/dotnet/control/numerictextbox.html


あんだう  2003-10-17 04:48:15  No: 79728

SendMessage()APIを使用し、テキストボックスにバイト数制限をかけたらたらどうでしょう?

【定義】
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long   
Private Const EM_LIMITTEXT = &HC5

【使用例】
'text1テキストボックスを 4バイトに制限
    SendMessage text1.hwnd, EM_LIMITTEXT, 4, 0


ビギナー  2003-10-22 19:59:08  No: 79729

吉野さんのやり方では全角数字を半角数字に変換していますよね?
同様の方法でVB.NETで全角かなを半角カナに変換することもできるのでしょうか?
よろしければ教えてください。


dai  2003-10-22 23:38:55  No: 79730

http://www11.plala.or.jp/nslhp/tips/tips3.html


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加