- ベストアンサー
テキストボックスに入る文字を1字に制限したいのですが、うまくできません。
事前に文字があってもなくても、最終入力文字が1つだけ残るようにしたいのです。 先日、同じ質問をしましたが、いただいた回答は、どれも役に立ちませんでした。ご自分で実験されてから回答してくださるようお願いします。 ダメだった方法 * sub text1_keyascii の中でボックスをクリアする。 * sub text1_keyascii の中でtextプロパティを再指定する。 * maxlength プロパティを1に設定しておく。 困っている状態 キー入力した文字が、次々とボックスに入ってしまい、BSキーなどを使わないと消せない。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
process9です。 maxlength プロパティを1にして Private Sub Text1_KeyPress(KeyAscii As Integer) Text1.Text = "" End Sub ではだめですか? >先日、同じ質問をしましたが、いただいた回答は、どれも役に立ちませんでした。ご自分で実験されてから回答してくださるようお願いします。 余計なお世話かもしれませんが、実験してダメかどうか はあなたのやることだと思いますが・・・ 親切心で回答者は提案しているだけですし、 質問文面を誤解して回答する場合もありますから。 私のも実験してはいるけど、あなたのやりたいことが 本当に私に正しく伝わっているかは不明ですから。 んで >どれも役に立ちませんでした こう書かれるといい気持ちしないですよ。 あなたが逆の立場だったらどう思いますか? ダメだったらダメだったで、補足に詳細を書くっていうのが 正しい質問のやり方だと思います。 反感買いますよ?って買ってますね・・・↓
その他の回答 (5)
- laputart
- ベストアンサー率34% (288/843)
自分で試してみました。 text1.changeにコードを書いたり、keypressのkeyasciiをchr() に変換する事も試みたのですがうまくいかず、最後に text1.KeyPress に1行を書くだけで、ご希望のように最後に 入力した1文字を表示させる事が出来ました。 Private Sub Text1_KeyPress(KeyAscii As Integer) Text1.Text = "" End Sub
1、Visual Basic のバージョン。 2、なぜ、maxlength=1 が役に立たないのか? この辺りの補足が必要と思います。 なお、仮に、次のような回答を得たいのであれば、質問要領に問題があります。 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii <> 13 Then Text1 = Chr(KeyAscii) KeyAscii = 0 End If End Sub
- ackapapa
- ベストアンサー率44% (8/18)
ミス Private Sub Text1_KeyPress(KeyAscii As Integer) Text1.Text = "" End Sub
- ackapapa
- ベストアンサー率44% (8/18)
これですね http://oshiete1.goo.ne.jp/kotaeru.php3?q=2317852 コレに対する返事やお礼すらせず何様でしょうか? おまけに締め切っても無いですし・・・ 質問者の態度とは到底思えません。 Private Sub Form_Load() Text1.Text = "" End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) Text1.Text = Chr(keyacsii) End Sub
- kenken0
- ベストアンサー率24% (46/190)
>どれも役に立ちませんでした。ご自分で実験されてから回答してくださるようお願いします。 そうおっしゃるのであれば、お金を払って質問されることをお勧めいたします。
- 参考URL:
- http://q.hatena.ne.jp/
お礼
ご忠告ありがとうございます。今後気をつけます。 情けないことに、KeyPressでは、どうやってもダメです。 本件は、Sub KeyPress(KeyAscii) でなく Sub KeyDown(KeyCode) を使うことによって解決に向かっております。しかし、KeyPress と KeyDown の違いが、実は、よく分かっておりません。この点について何かコメントを頂戴できればありがたいと思っています。