检查文本框是否为空并填写?

时间:2016-12-02 16:39:03

标签: c# textbox

private void textBox3_TextChanged(object sender, EventArgs e)
{
    if ( textBox3.Text == "")
    {
        textBox3.Text == "---";
    }
}

我在这里尝试做的是检查文本框是否为空,如果是,则---将自动进入另一个datagridview

1 个答案:

答案 0 :(得分:3)

这个问题很不清楚。我不知道DataGridView在这里发挥作用,因为代码都是关于文本框的。

但不管怎样,这段代码是解决问题的好方法。您将不断干扰用户更改文本框内容的能力,从而导致极其令人沮丧的体验。

如果必须这样做,请确保仅在文本框失去焦点时执行此操作,而不是每次文本更改时执行此操作。也就是说,处理LostFocus事件,而不是TextChanged事件。您可以进行相同的条件测试,但要确保操作符正确! (==用于等式测试; =用于分配)。

private void textBox3_LostFocus(object sender, EventArgs e)
{
    if (textBox3.Text == "")
    {
        textBox3.Text = "---";
    }
}

更好的解决方案是use a textbox with a cue banner。将提示横幅设置为“---”字符串,只要文本框为空(不包含文本),它就会显示。这一切都由操作系统自动完成,并作为文本框绘制逻辑的一部分进行处理,因此它不会干扰用户与控件交互的能力。它也是可预测的,并且与标准的Windows UI行为一致。

如果您实际上是在尝试检查文本框是否为空,如果是,请将“---”添加到DataGridView,然后TextChanged事件可能会起作用,但Validating是一个更好的选择。在if语句内部,将文本分配给DataGridView中的相应单元格。