- ベストアンサー
文字数の制限について
TextBoxの文字数の制限が上手くいかなくて困っています。 ◆問題点1 最大入力文字数を、半角は50文字、全角は25文字と設定したいです。 下記の質問を参考にし、キーボード入力の制限をかけることが出来ました。 質問:テキストボックスへの文字の入力について http://oshiete1.goo.ne.jp/kotaeru.php3?q=287224 しかし、最大文字数が入力されているときに「貼り付け」を行うと 設定以上の文字数が入力されてしまいます。 入力文字数+貼り付け文字数が、最大入力文字数よりも長ければ、 コピーを禁止したいのですが、何か良い方法はございますか? ◆問題点2 MaxLengthに設定した最大文字数よりも1文字分長く、入力できてしまいます。 MaxLength = 4 と設定したTextBox(仮に「Text1」とします)に半角文字を4文字分入力します。 (このとき、ぴったし4文字分キーボードを押下します。) 次に半角文字2文字分をコピーし、Text1のなかの1文字をドラックして貼り付けます。 (ドラックする文字は最後尾以外です。) 上記手順を行うと、Text1には5文字分入力されてしまいます。 どのような処理を行えば、"4文字まで"と必ず制限できますか? 問題点1、2のどちらか一つでも構いませんので、対処法を教えていただけますか? 宜しくお願いいたします。 なお、環境は Microsoft Windows 2000 Microsoft Visual Basic 6.0 です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
変更前の文字列を取っておいて、 変更後の文字列が最大文字数より大きくなっている場合には、変更前の文字列に戻して、事実上処理をキャンセルするような方法ではどうでしょう。 (つまり、自前で「元に戻す」の処理をやります。 CTRL+Z(標準の処理で)で元に戻すができるかもしれません)
その他の回答 (1)
- BuXiangHua
- ベストアンサー率42% (11/26)
お礼
回答、ありがとうございました。 お礼が遅くなり、申し訳ございません。 参考URLに載っていた方法は、よく知られている事なんですね。 私は、はじめて知りました・・・ BuXiangHuaさんの方法と、#1のBLUEPIXYさんの方法を使用し、問題点が解消されました。 ありがとうございました。
お礼
回答、ありがとうございました。 お礼が遅くなり、申し訳ございません。 Ctrl + Z はよく使う機能なのに、すっかり存在を忘れていました。 BLUEPIXYさんの方法と、#2のBuXiangHuaさんの方法を使用し、問題点が解消されました。 ありがとうございました。