2016-05-31 7 views
-1

textBox1の最初の行が " - "で始まる場合は、textBox2にメッセージを表示しようとしています。 それはうまくいきますが、 " - Hello"とか " - "で始まる何か他の文字を使用しないでください。 一度送信する方法はありますか?C#textBoxメッセージ

if(textBox1.Text.StartsWith("-")) 
{ 
    textBox2.Text += "\r\n Please do not use other characters \r\n"; 
} 
+0

'+ ='の代わりに '='を使用しますか? – CodeCaster

+0

textbox1が " - "で始まるときにいつでもプログラムにメッセージを追加してほしい –

+5

あなたの質問にはステップバイステップで何が起こりたいのか、そして「いつも」とは何かを意味するように質問してください。 – CodeCaster

答えて

0

を私はあなたが表示するtextBox2を使用していると仮定しています複数のメッセージ(=ではなく=+を使用しています)。ただし、ユーザーがまだ入力している場合は、同じメッセージを2回表示する必要はありません。

そのような場合、あなたはこれらの3つのオプションのいずれかを使用することができます.. Leaveイベントを使用するには、次のようなもの

1-:この場合

private void textBox1_Leave(object sender, EventArgs e) 
    { 
     if (textBox1.Text.StartsWith("-")) 
     { 
      textBox2.Text += "\r\n Please do not use other characters \r\n"; 
     } 
    } 

を、メッセージはtextBox1がフォーカスを失ったときにのみ表示されます。


2 - あなたが入力するが、1つの時間を表示する一方でメッセージを表示したい場合は、あなたがこのような何かを行うことができます:

bool Alerted; 
    private void textBox1_Enter(object sender, EventArgs e) 
    { 
     Alerted = false; 
    } 
    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 
     if (Alerted) { return; } 
     if (textBox1.Text.StartsWith("-")) 
     { 
      Alerted = true; 
      textBox2.Text += "\r\n Please do not use other characters \r\n"; 
     } 
    } 

これは、メッセージは表示されません再びtextBox1までフォーカスを取り戻す。 ( - )あなたはメッセージがない限り、再度表示されることはないしたい場合は


3-及び削除され、入力された場合も、その後、Enter使用していない、とあなただけ使用することができ、次の

bool Alerted; 
    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 
     if (textBox1.Text.StartsWith("-")) 
     { 
      if (Alerted) { return; } 
      Alerted = true; 
      textBox2.Text += "\r\n Please do not use other characters \r\n"; 
     } 
     else 
     { 
      Alerted = false; 
     } 
    } 

一つ最後のノート:あなたはおそらく、あなただけの行の末尾に追加することができ、開始とメッセージの最後に\r\nを必要としません。

希望するもの:

0

メッセージボックスでメッセージボックスを開くためにテキストボックスがフォーカスを失ったときに、テキストボックスのフォーカスを再度与えて、それを検証するように変更します。これにより、ユーザーは制約を満たさない値を入力できなくなります。

0
if(textBox1.Text.StartsWith("-")) 
{ 
    textBox2.Text = "\r\n Please do not use other characters \r\n"; 
} 
else 
    textBox2.Text = ""; 

+ =を使用すると、textbox1のテキストが " - "で始まる場合は常にエラー文字列が追加されます。これを一度追加する場合は、+ =と追加のみを行う=

0

現在、+=演算子でエラーメッセージをテキストボックスの内容に連結していますが、実際には代わりにその値に設定する必要がありますあなたは短いアプローチを優先した場合

// If your TextBox starts with "-" 
if(textBox1.Text.StartsWith("-")) 
{ 
    // Set your textbox to the error message 
    textBox2.Text = "\r\n Please do not use other characters \r\n"; 
} 
else 
{ 
    // Otherwise, there isn't a problem (remove any error messages) 
    textBox2.Text = ""; 
} 

、次のように同じことをするだろう:=演算子使用して

// This will handle all of your logic in a single line 
textBox2.Text = textBox1.Text.StartsWith("-") ? "\r\n Please do not use other characters \r\n" : ""; 
関連する問題