我需要找到与IsNullOrEmpty
相反的东西吗?
这是文本行。
{
while (string.IsNullOrEmpty(TextBox.Text))
}
这是相反的东西吗?
答案 0 :(得分:2)
{
while (!string.IsNullOrEmpty(TextBox.Text))
}
答案 1 :(得分:1)
在Winforms TextBox控件的上下文中,您根本不需要测试.Text
的{{1}}属性。可悲的是,我找不到有关此文档,我担心这是mdsn => docs move的牺牲品,但我已经在Visual Studio中对其进行了验证。
您也可以验证它;尝试一下。使用文本框创建一个简单项目,并在代码中将其null
设置为Text
。然后检入调试器,您会看到它实际上是设置了一个空字符串。这样,TextBox控件就很好,大多数其他股票Winforms控件也是如此。
请记住,此代码的相反之处:
null
可以减少到这样:
while (string.IsNullOrEmpty(TextBox.Text))
尽管您可能还需要考虑空格,但这将是以下两行之一:
while (TextBox.Text != "")
但是现在我需要提出另一点:这些选项都没有在控件上执行while (TextBox.Text.Trim() != "")
while (!string.IsNullOrWhitespace(TextBox.Text))
,这意味着它必须在UI线程上运行。 在用户界面线程上运行这样的Invoke
循环是非常糟糕的。您指望用户打破循环,但是与此同时,您阻止了整个用户界面,该程序甚至在处理输入时都会遇到困难,最终将其解锁。
相反,您需要处理按键事件,或者在用户尝试根据文本框值尝试启动操作时验证文本框,或者将其移至另一个线程。