「’」マークをテキストボックスに表示させないようにするには

解決


VB初心者  2006-01-14 01:10:53  No: 129535

テキストボックスに、数字やアルファベットを入れるようにして、
シングルクォーテーションマーク「'」のみキーボードを押しても、表示させないようにしたいのです。
なにも入ってない初めの状態なら、

Private Sub テキスト_KeyPress(KeyAscii As Integer)
    '「'」を押したとき
    if KeyAscii = 39 then
       If テキスト.Text = "" Then
            テキスト.Text = ""
    End Sub
でも、テキストになにか入ってって、途中で「’」を押すと
テキストの中身が全部空になってしまいます。

初歩的な質問かもしれませんが、どなたか教えて下さい。


medaka  2006-01-14 01:21:15  No: 129536

Replaceで "’"を""に変換してみては?
それだけだとキャレット位置が先頭になるかもしれませんが。


モモちん  2006-01-14 01:22:52  No: 129537

はじめから入力できないようにすればいいと思います。

Private Sub Text1_KeyPress(KeyAscii As Integer)
     Select Case KeyAscii
         Case Asc("'")
            KeyAscii = 0
            Beep '警告音
         Case Else
     End Select
End Sub


特攻隊長まるるう  2006-01-14 01:47:15  No: 129538

この手の質問は数値のみの入力制限とか…過去ログに結構情報があります。
過去ログ検索『入力制限』などでどうぞ。
で、毎回言われるのがコピペ対応はどうするのか?
過去ログ検索『コピペ』でどうぞ。


ガッ  2006-01-14 01:49:04  No: 129539

KeyPressだけだとコピペで入力できます。
・最終的にValidateイベントで一括にText中の"'"に対して処理をする
・ChangeイベントでText中の"'"に対して処理をする
というのが一般的?


VB初心者  2006-01-14 02:05:31  No: 129540

モモちん san
ありがとうございました。
解決しました。


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




  


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