2011-05-13 12 views
1

C#.net を使用してWindowsフォームアプリケーションでスペースを使用せずにテキストボックスを検証する方法.iプロジェクトで.iがスペースを使わずにテキストボックスを検証できる... ............ 1.オンリースペースは許可されていません 2. 1文字または2文字を入力した後にテキストボックスにスペースを... ...Windowsフォームアプリケーションでテキストボックスを検証する

+0

を参照してくださいhttp://stackoverflow.com/questions/2703461/regular-expression-alphanumerics-with-space http://stackoverflow.com/questions/924287/regular 〜表現英数字とスペースのためのn。あなたの要件に合わせて正規表現を変更する必要があります。 –

+0

あなたは 'スペース'で始めることはできませんが、後で使用することができますか? – V4Vendetta

+0

こんにちは、申し訳ありませんが私はあなたの質問を最初に見ることができなかったと私はその良い方法はstackoverflowで2回答えることはないと思う。だから私はあなたがhttp:// stackoverflowのほんの数分前に答えた以下のリンクを参照することを提案したいと思います。text/text-in-windows-form-applications/5988074#5988074 – SharpUrBrain

答えて

1

ユーザーがKeyPressイベントを処理してのスペースに入ることを禁止します。

void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    e.Handled = (e.KeyChar == (char)Keys.Space); 
} 
ケースのスペースには10

EDIT

は、その後、あなたはそれはあなたが「検証」によって何を意味するかに依存し

textbox1.Text.TrimStart()

+0

空白はテキストの冒頭でのみ許可されていますが、後で入力できると思います。 –

+0

TrimStart()を実行するのは、開始時にスペースを許可していないという問題だけだった場合に有効です。しかし、OPはスペースを許す前に1〜2文字を持ちたいと言っていた。それが1文字の場合、あなたは大丈夫です。ただし、2つの場合、このメソッドは動作しません。 – IAmTimCorey

+0

@BiggsTRCどのように違いが出るのですか?「TrimStart」は、1つまたは2つの文字が問題にならないようにするために、スペース/スペースを最初から削除します。 – V4Vendetta

0

を使用する必要があり、文字または2を入力した後許可されています。コントロールを終了すると、WinformsにはValidatingイベントとValidateイベントが発生します。これらをタップしてテキストボックスを検証することができます。ただし、入力時に検証する場合は、Key_Pressイベントを使用して、キーが押されるたびにチェックボックスの情報が有効であることを確認する必要があります。そこで

WinForm UI Validation

の答えはあなたが何をしたいかに応じて、いくつかのさまざまなアイデアを与える:

はここでSOの検証についての記事です。あなたが何を決定したら、フィールドを正しくチェックすることを確認してください。たとえば、Key_Pressを使用する場合は、空白を許可する前にフィールドにある文字の数だけをカウントしないでください。そうした場合、ユーザーはカーソルを最初と押したスペースに移動させることができます。それはあなたのシステムを台無しにするだろう。 Key_Pressイベントを使用している場合でも、検証時にフィールド全体を必ず確認してください。あなたがこれをやりたいように複雑なパターンでRegExを使用してください。

0

TextBoxの英数字以外の文字入力を許可しない場合は、TextBoxのKeyPressイベントでこれを行うことができます。

KeyPressイベントでは、入力された文字がレターかデジットかを確認する必要があります。 yesの場合、押すキーを許可しない、

そうでない場合

"e.Handled = false" を設定して、キー押下を許可する場合

Char.IsLetterOrDigit(e.KeyChar)

"e.Handled = true" を設定することにより、

private void txtCardID_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (Char.IsLetterOrDigit(e.KeyChar)  // Allowing only any letter OR Digit 
     || e.KeyChar == '\b')     // Allowing BackSpace character 
     { 
      e.Handled = false; 
     } 
     else 
     { 
      e.Handled = true; 
     } 
    } 
関連する問題