• ベストアンサー

テキストボックスに入力された値の判定

jcctairaの回答

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.1

fflashingさん こんにちは。 私はVB.NETは知っていますが、C#は詳しくは知りません。 しかし基本大差はないので、一応回答させて頂きます。 ※C#の構文を知らないので間違っていたら訂正して下さい。 1.通常、文字のチェックは正規表現で行った方が良いと思います。  例)VB.NET    Dim num As String = "100.9"    If System.Text.RegularExpressions.Regex.IsMatch(num, "^\d+$") Then     MsgBox("数字です。")    Else     MsgBox("数字以外が入っています。")    End If  例)C#    string number = "123456";    if (System.Text.RegularExpressions.Regex.IsMatch(num , @"^\d+$"))    {   Console.WriteLine("数字です。");    }    else    {     Console.Write("1/{0} = {1}", x, x_inv);  } 2.TryParseで行う?   試しましたが数字チェックは無理なようです。   数字エラーの場合結果をいつも0になるだけのようです。   ※VB.NETで試した結果ですが… 3.Parse命令でTry&Catchで行う  例)VB.NET    Dim num As String = "100.9"    Dim i As Integer    Try     i = Int32.Parse(num)     MsgBox("数字です。")    Catch     MsgBox("数字以外が入っています。")    End Try  例)C#     string num = "this is not a number";     int i;     try {      i = Int32.Parse(num);  Console.WriteLine("数字です。");   } catch {  Console.WriteLine("数字以外が入っています。");  }

fflashing
質問者

お礼

正規表現でのチェック。思いつきませんでした。テキストエディタで正規表現はよく使うのですが、.NETプログラムで使ったことがありませんでした。勉強になります。正規表現が使えれば文字のチェックも柔軟にできるので今後私の助けになってくれると思います。ありがとうございます!

関連するQ&A

  • テキストボックスの入力検出について

    テキストボックスの入力検出について質問です。 変更があるとプロパティシートの適用ボタンを有効になるようにしているのですが、 テキストボックスをクリックすると、 「WM_COMMAND」になっていて、PropSheet_Changed()関数を 処理してしまうのですが、 テキストボックスで入力された時だけ PropSheet_Changed()関数を処理したいのですが、 どうすればいいのでしょうか? 参考にしたサイト http://wisdom.sakura.ne.jp/system/winapi/common/common12.html 開発環境 XP Visual Studio 2005 C、C++でWindowsAPIを使用

  • テキストボックスの数字入力関係 HTMLorSCC

    Webページを作成していまして、問題に引っかかったので質問です。 テキストボックスを作成し、そこに数字を入力し判定したいのですが上手くいきません。 行いたいこと… ・テキストボックスに10文字ほど入力できるようにする ・ただし、4文字でなければ送信など出来ないようにする。  (入力できないようにする) ・入力する文字は全て数字(英語はNG) 郵便番号入力ファームのようなものをイメージして頂けるとわかりやすいと思います。 #テキストボックスで判定するのではなく、送信ボタンを押した際に  数字4文字かどうかで判定しても良いといわれたのですが、チンプンカンプンです… 色々調べてみて、JavaでKeycodeを弾くように作成してみたのですが、 使用者によってはKeycodeが違うからとダメ出しを食らいました… 他のページでは殆どVB関係しか扱っていませんでしたし、今回はどうしてもHTMLがらみで作成したいのです。 無知で申し訳ありませんが、是非ご教授ください。

  • テキストボックスの値が変更になったら

    ポイントを入力するテキストボックスが2つあって、 1つめのテキストボックスの値が変更されたら2つめの テキストボックスにもその変更された値を表示するとい う事は可能でしょうか? onChangeの処理かなーとも思ったのですが書き方がよく わかりません。 何か良い方法がありましたら教えて下さい。

  • vb6でテキスト入力の数字を判定したい。

    お世話になります。 XPでvb6を使ってプログラムを作っています。 テキスト形式で入力された文字が数字の0から15までの数字かを判断したいのですが IsNumeric関数で数字か数字以外の文字かを判定した後、 VAL関数で判定とプログラミングしたところ 入力された値が”1d1”だと IsNumeric関数はTrue、VAL関数は10になり 正しい入力と判断されてしまします。 何かいい方法があればご教授頂きたく宜しくお願いします。 以上です。

  • 【C#】コンボボックスに任意の数字を入力し、それをテキストボックスに表

    【C#】コンボボックスに任意の数字を入力し、それをテキストボックスに表示させる方法 C#初心者です。 コンボボックスの処理につまずいています。 <処理> 1.コンボボックスに任意の数字を入力できるようにしておく。 2.そして、任意の数字を入力する。 3.ボタンを押したら、その入力した数字がテキストボックスに表示される。 1と2はできるのですが、3がよくわかりません。 どなたかご教授いただけると幸いです。 宜しくお願いいたします。

  • 数字か文字列かを判定する関数

     JAVAの初心者です、宜しくお願いします。     テキストボックスに入力された値を、数字か文字列かを判定する関数ってありますか、VBでは「isNumeric」とかがあるのですが、JAVAではヒットしませんでした。  どこからどのように調べるのでしょうか。  いいサイトがあれば教えて下さい。

    • ベストアンサー
    • Java
  • VB.NET テキストボックスの入力チェック

    Visual Basic 2008 に関する質問です。 画面のテキストボックスの入力値をチェックする処理として、 Validatingイベントを使用しています。 例えば、 画面上に配置しているボタンをクリックして画面を閉じさせたい場合(Application.Exit()等)、 テキストボックスの値が未入力であると、上記の入力チェックが先にはしってしまい、 画面を閉じることができません。 閉じるボタンの処理を最優先させる方法について、 どなたかご教授いただけませんでしょうか? (※初歩的なご質問で大変申し訳ございません。)

  • [C#]テキストボックスに入力した値を、ツリービューに反映させたい

    [C#]テキストボックスに入力した値を、ツリービューに反映させたい C#初心者です。 あるアプリを作っていて、テキストボックスにユーザーが任意の数字を入力し、 ボタンをクリックすると、Treeviewのある位置に反映されるというものです。 説明が抽象的で申し訳ありませんが、ご教授願います。 宜しくお願いいたします。

  • テキストボックスに値を入力し終わったらイベントを発

    エクセル2007を使用しています。 アクセスで言う「更新後処理」のAfterUpdateイベントは エクセルのActiveXコントロールのテキストボックスイベントにはないのでしょうか? 例えば、テキストボックスに「aiu」と入力し終わったらイベントを発生させたいのですが、 Private Sub TextBox1_Change() MsgBox "" End Sub にしすると 「a」を入力した時点で、MsgBox が表示されてしまいます。 テキストボックスに値を入力し終わったらイベントを発生させる方法はありますか? VBE画面でシートイベントを見ても AfterUpdateイベントは見当たりません。 ご回答よろしくお願いします。

  • テキストボックスの入力抑制

    使用言語はVB.NETです。 フォームAのテキストボックスAに文字を入力し確定すると、 フォームBが起動、フォームBのテキストボックスには、 テキストボックスAで入力した内容が表示されており、それを 変更することはできない。 ただし、テキストボックスAに何も入力せずに起動した場合、 テキストボックスBの内容は書き換え可能、というようなものを 作りたいと思っています。 また、テキストボックスBを入力不可にするには、Enabled=False 以外の方法で行いたいのです。 例えば、テキストボックスAで1と入れた場合、テキストボックスBの 初期表示1をBSで消しても、違う値をいれても、常に1に表示が戻される、 というようなものにしたいのですが…。 上記のようなものを作るには、どのように処理を作っていけば 良いのでしょうか? サンプル的なコードを教えていただけるとありがたいです。 よろしくお願いします。