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

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

问题描述:

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

我想在这里做的是检查文本框为空,如果是,那么---将自动在另一个datagridview的检查文本框是否为空并填充它?

+2

'=='是比较运算符,'='是赋值运算符。尝试'if(textBox3.Text == string.Empty){textBox3.Text =“---”; }' – Equalsk

+3

好的。什么是问题? – Alex

+4

如果您尝试(错误地)将它分配给一个'TextBox',如何进入'DataGridView'? –

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

但无论如何,这个代码是而不是很好的解决了这个问题。您将不断干扰用户更改文本框内容的能力,导致极其令人沮丧的体验。

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

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

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

如果您确实想要检查文本框是否为空,并且如果是,请将“---”添加到DataGridView,那么TextChanged事件可能会正常工作,但Validating是更好的选择。在if语句的内部,将文本分配给DataGridView中的相应单元格。