我在 Windows 窗体上使用 VS2017 和 C#。
我正在创建一个小工具,我需要一些帮助。
我有 10 个文本框,名称分别为 textGame1、textGame2、textGame3 等等
我想创建代码,其中如果任何文本框为空,那么它会将文本框文本替换为“EMPTY”。
我可以轻松做到
if (string.IsNullOrWhiteSpace(textGame1.Text))
{
textGame1.Text = "EMPTY";
}
但是我必须为每个文本框创建 10 个。
有没有比创建 10 个这样的 IF 语句更简单的方法?
最佳答案
首先,创建一个集合来存储您要操作的每个文本框。您可以手动执行此操作:
var textBoxes = new[] { textGame1, textGame2, textGame3, ... };
或者使用 Controls
集合(一点 Linq 可以提供帮助):
var textBoxes = Enumerable.Range(1, 10).Select(i => (TextBox)Controls[$"textGame{i}"]);
或者如果您需要递归搜索所有子项,请使用 Find
方法:
var textBoxes = Enumerable.Range(1, 10).Select(i => (TextBox)(Controls.Find($"textGame{i}", true)[0]));
现在,只需使用一个foreach
:
foreach(var tb in textBoxes)
{
if (string.IsNullOrWhiteSpace(tb.Text))
{
tb.Text = "EMPTY";
}
}
关于c# - 如何为多个元素制作if语句? C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42728433/