检查文本框是否为空并填充它?
问题描述:
private void textBox3_TextChanged(object sender, EventArgs e)
{
if (textBox3.Text == "")
{
textBox3.Text == "---";
}
}
我想在这里做的是检查文本框为空,如果是,那么---将自动在另一个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中的相应单元格。
'=='是比较运算符,'='是赋值运算符。尝试'if(textBox3.Text == string.Empty){textBox3.Text =“---”; }' – Equalsk
好的。什么是问题? – Alex
如果您尝试(错误地)将它分配给一个'TextBox',如何进入'DataGridView'? –