• ベストアンサー

文字数の制限について

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 です。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

変更前の文字列を取っておいて、 変更後の文字列が最大文字数より大きくなっている場合には、変更前の文字列に戻して、事実上処理をキャンセルするような方法ではどうでしょう。 (つまり、自前で「元に戻す」の処理をやります。 CTRL+Z(標準の処理で)で元に戻すができるかもしれません)

Milk_369
質問者

お礼

回答、ありがとうございました。 お礼が遅くなり、申し訳ございません。 Ctrl + Z はよく使う機能なのに、すっかり存在を忘れていました。 BLUEPIXYさんの方法と、#2のBuXiangHuaさんの方法を使用し、問題点が解消されました。 ありがとうございました。

その他の回答 (1)

回答No.2
参考URL:
http://www31.ocn.ne.jp/~heropa/vb39.htm
Milk_369
質問者

お礼

回答、ありがとうございました。 お礼が遅くなり、申し訳ございません。 参考URLに載っていた方法は、よく知られている事なんですね。 私は、はじめて知りました・・・ BuXiangHuaさんの方法と、#1のBLUEPIXYさんの方法を使用し、問題点が解消されました。 ありがとうございました。

関連するQ&A

  • textareaで入力できる文字数を制限したい。

    フォームについて質問させてください。 テキストフィールドで、シングルラインならば入力できる文字の最大数を maxlength で指定できるのですが、マルチラインの場合、同様に最大数を指定することはできないでしょうか? わかるかた、なにとぞご教授ください。 ■シングルラインでの文字数制限 <input name="thread_title" type="text" id="thread_title" size="80" maxlength="10"> ■マルチライン <textarea name="text" cols="64" rows="10" id="news_text" maxlength="10"></textarea> ↑上記のようにmaxlength入れても駄目でした。。。涙

    • ベストアンサー
    • HTML
  • テキストBOXの入力制限について

    テキストBOXを下記のように設定したとします。 <input type="text"name="***" maxlength="30"> この場合は、全角・半角関係なく文字数を30文字入力することができますよね? 今回、私がやりたいことは、バイト数の制限をやりたいんです。 例えばバイト数を30バイトにした場合は、 全角では15文字しか入力できなくて 半角では30文字入力制限をする方法を探しています。 何かよい方法はないものでしょうか???

  • TextBoxで4文字のみの文字数制限

    いつもお世話になります。 Win7 excell2010 です。 ご指導を仰ぎたいのは TextBoxに入力できる文字数を「4」文字以上もしくは以下も入力できないようにしたい。 4文字のみ可能に。 例えば 3文字(4文字以下) もしくは 5文字(4文字以上)の場合は入力はできない。 下記のマクロは5文字以上の時は4文字のみが表示されます。 Private Sub TextBox1_Change() If Len(TextBox1.Text) > 4 Then TextBox1.Text = Left(TextBox1.Text, 4) End If End Sub プロパティ設定 MaxLengthプロパティで 4

  • エクセル2007で文字入力数の制限について質問です

    エクセル2007で文字入力数の制限について質問です 全角と半角が混在した文章で全角は1文字、半角は0.5文字で計算して 合計で20文字以内とか設定できませんか? 「データの入力規則」では出来なそうなので。。。 また、20.5文字以内という設定は可能ですか? 簡単な関数でせいげんできれば助かります ご回答よろしくお願いします

  • テキストエリア文字制限について

    テキストエリア文字制限について 失礼します。 javascript初心者です。 複数のテキストエリアの文字制限を行いたく 苦戦しております。 いろいろと検索してみましたが・・・ 2日ほど悩んでおります。 AとBでエラーが出た場合はCGIに流れず入力フォームに戻るのですが Bでエラーが発生しない場合CGIに流れてしまいます。 ですの文字数制限をしても結局CGIに流れてしまうのですが どのように記述すればよろしいでしょうか?? なんとか・・・ご教授いただければ幸いです。 よろしくお願いいたします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>入力文字数の制限</title> <script language="javascript" type="text/javascript"> <!-- var MAXLENGTH = 10; //入力許容最大文字数 function tareachk(frm){ var tmp = frm.vin1.value; var len = tmp.length; if(len > MAXLENGTH){alert("A入力可能な文字数は"+MAXLENGTH+"文字までです");} var tmp = frm.vin2.value; var len = tmp.length; if(len > MAXLENGTH){alert("B入力可能な文字数は"+MAXLENGTH+"文字までです");} else{frm.submit();} } // --> </script> </head> <body> <form action="ccccc.cgi" method="post"> <textarea name="vin1" rows="5" cols="30">10文字まで入力可能</textarea><br> <textarea name="vin2" rows="5" cols="30">10文字まで入力可能</textarea><br> <input type="button" value="GO" onclick="tareachk(this.form);"> </form> </body> </html>

  • 文字数制限

    FlashLite1.0でステージ上にテキストフィールドと0~9のボタンを作成し、ボタンを押すとテキストフィールドに数字が表示されます。 数字をずっと押すとフィールドから見えなくなっても数字が無限に表示されている状態なので文字数制限をつけたいと思っています。 文字数制限のスクリプトはmaxlengthがあるので使ってみたのですがうまくいきません。 どのようにすれば制限をつけられるでしょうか?

    • ベストアンサー
    • Flash
  • ACCESS 入力文字数制限

    初歩的だとは思うのですが フォームで、テキストの入力文字数を制限したいのですが、 方法が良く分からず、出来るのかどうかもわかりません。 エラーチェックとかではなく、たとえば3文字以上ぜったい入れられないように。 (HTMLで言うところのmaxlengthみたいな感じで・・) どなたか教えてください。お願いします。

  • テキストボックスの入力文字を16進数のみに制限する

    VC++2005、.NET2.0、C++/CLIにてWindowsアプリを作成しています。 テキストボックスの入力文字について、 「00」~「FF」の16進数文字(半角)のみ入力可能としたいのですが、 どうやって制限をかければ良いのでしょうか? また、もし16進数のみの制限が不可能であれば、 半角英数字のみの制限でも良いと考えています。

  • EXCEL入力規則で文字数制限

    EXCEL2002です。 A列に入力規則をかけ、全角20文字、半角40文字以内にしたいと思っています。 「エクセル技道場→入力規則→全角5文字、半角10文字」を参考にさせていただき、以下の式で入力規則のユーザー設定を行いました。 =AND(ISTEXT(A1),LENB(A1)<=40) この場合、最初の文字が半角の場合に制限数以下でもエラーメッセージが出てしまいます。 最初の文字が全角でも半角でも制限数以下であればエラーメッセージが出ないようにする方法はありますか? よろしくお願いします。 http://www2.odn.ne.jp/excel/waza/validation.html#SEC10

  • フォーム要素の文字数制限について

    それぞれのフォーム要素に文字数(またはバイト数)の制限ってあるんでしょうか? あるとしたら何文字ですか? maxlengthなどで指定する値や、受け取るプログラム側の制限ではなく、HTMLの仕様としての制限についてです。 特に知りたいのが、隠しフィールド(input type="hidden")の文字数制限です。 よろしくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう