当TextBox.Text不存在时,TextChanged事件不会在null上触发

时间:2014-03-21 06:56:54

标签: c# winforms

有谁知道为什么当我从Textbox1删除所有文字时,它不会将其视为空值而是将其视为空字符串?

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        if (textBox1.Text == null)
        {
            textBox2.Text = "Null";
        }
        else
        {
            textBox2.Text = "Input Positive";
        }
    }
}

3 个答案:

答案 0 :(得分:1)

null与字符串空

不同
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.text))
    {
        textBox2.Text = "Null";
    }
    else 
      textBox2.Text = "Input Positive";
}

答案 1 :(得分:0)

因为textbox.text是一个字符串属性,所以很明显它会与不是null对象的字符串进行比较!你可以尝试

if (string.IsNullOrEmpty(textBox1.text))
{}

您可以参考以下链接:

http://msdn.microsoft.com/en-us/library/system.windows.controls.textbox.text

答案 2 :(得分:0)

TextBox.Text不要使用名为Null的任何值,而是尝试使用textBox.Text.Length==0textBox.Text==""

 private void textBox1_TextChanged(object sender, EventArgs e)
 {
    if (textBox1.Text.Trim() == "" || textBox1.Text.Length==0)
    {
        textBox2.Text = "Null";
    }
    else textBox2.Text = "Input Positive";
 }