テキストボックスに、数字やアルファベットを入れるようにして、
シングルクォーテーションマーク「'」のみキーボードを押しても、表示させないようにしたいのです。
なにも入ってない初めの状態なら、
↓
Private Sub テキスト_KeyPress(KeyAscii As Integer)
'「'」を押したとき
if KeyAscii = 39 then
If テキスト.Text = "" Then
テキスト.Text = ""
End Sub
でも、テキストになにか入ってって、途中で「’」を押すと
テキストの中身が全部空になってしまいます。
初歩的な質問かもしれませんが、どなたか教えて下さい。
Replaceで "’"を""に変換してみては?
それだけだとキャレット位置が先頭になるかもしれませんが。
はじめから入力できないようにすればいいと思います。
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case Asc("'")
KeyAscii = 0
Beep '警告音
Case Else
End Select
End Sub
この手の質問は数値のみの入力制限とか…過去ログに結構情報があります。
過去ログ検索『入力制限』などでどうぞ。
で、毎回言われるのがコピペ対応はどうするのか?
過去ログ検索『コピペ』でどうぞ。
KeyPressだけだとコピペで入力できます。
・最終的にValidateイベントで一括にText中の"'"に対して処理をする
・ChangeイベントでText中の"'"に対して処理をする
というのが一般的?
モモちん san
ありがとうございました。
解決しました。
| ツイート |
|