1

いくつかのtextBoxがnullではないことを確認するフォームがあります。いずれかが表示されている場合は、メッセージボックスが表示され、テキストボックスがリセットされ、ユーザーが再試行できるようになります。テキストボックスのチェックが間違っていると思います。これどうやってするの?ありがとう。

    public void ShowPaths()
    {
        if (textBox1.Text == null | textBox2.Text == null)
        {
            MessageBox.Show("Please enter a Project Name and Number");
        }
        else
        {
            sm.projNumber = textBox1.Text;
            sm.projName = textBox2.Text;

            textBox3.Text = sm.Root("s");
            textBox4.Text = sm.Root("t");
        }
        textBox1.ResetText();
        textBox2.ResetText();           
    }
4

6 に答える 6

3

この行は2つの理由で間違っています

if (textBox1.Text == null | textBox2.Text == null) 
  1. textbox.Textは、読んだときにnullになることはなく、空の文字列です。
  2. |論理を使用する必要がある場合は、ビットごとのOR演算子を使用しています||

したがって、正しい行は

if (textBox1.Text == string.Empty || textBox2.Text == string.Empty)
{
    MessageBox(......);

    // See the comment below
    textBox1.ResetText();    
    textBox2.ResetText();   
} 

エラーが発生した場合にテキストボックスをリセットするのか、それとも現在のように常にリセットするのか、質問からは明確ではありません。エラーが発生した場合にのみリセットする場合は、2つのResetTextをifブロック内に移動します

于 2012-06-07T14:09:48.427 に答える
0

WinForms Texboxesはnull私の経験では決して表示されず、代わりに。を返しString.Emptyます。

String.IsNullOrEmpty(textBox1.Text)どちらの場合もチェックするために使用できます。.Net 4を使用している場合はString.IsNullOrWhiteSpace(textBox1.Text)、スペースに対してもtrueを返すを使用できます。

if (String.IsNullOrWhiteSpace(textBox1.Text) || String.IsNullOrWhiteSpace(textBox2.Text))
于 2012-06-07T14:08:09.010 に答える
0

使用する

  if (textBox1.Text == null || textBox2.Text == null)

それ以外の

  if (textBox1.Text == null | textBox2.Text == null)

OR (||)演算子を正しく使用していません。

String.IsNullorEmpty(string)文字列変数のNULL値と空白値をチェックするために使用します。

于 2012-06-07T14:08:28.617 に答える
0
if ((textBox1.Text == String.Empty) || (textBox2.Text == String.Empty))

Textbox1が空またはtextbox2が空の場合(|ではなく||に注意してください)また、Textプロパティがnullになることはありません。常に文字列ですが、空の場合もあります(String.Emptyまたは "")

于 2012-06-07T14:08:47.840 に答える
0

TextBoxの.Textプロパティがnullになることはありません。探しているのは空の文字列なので、次のようになります。

if (textBox1.Text.Equals(string.Empty) || textBox2.Text.Equals(string.Empty))

また

if (textBox1.Text == "" || textBox2.Text == "")

また

if (String.IsNullOrEmpty(textBox1.Text) || String.IsNullOrEmpty(textBox2.Text))

|オペレーター||も同様である必要があります。しかし、これは問題の一部にすぎません。

于 2012-06-07T14:10:01.343 に答える
0

私は有罪判決を受けていませんが、テキストボックスは私が使用するnull値を持つことができますString.IsNullOrEmpty

if(String.IsNullOrEmpty(textBox1.Text) || String.IsNullOrEmpty(textBox2.Text))
{
    //...
}
于 2012-06-07T14:12:08.087 に答える