c# - 如何为多个元素制作if语句? C#

标签 c# winforms if-statement

我在 Windows 窗体上使用 VS2017 和 C#。

我正在创建一个小工具,我需要一些帮助。

我有 10 个文本框,名称分别为 textGame1、textGame2、textGame3 等等

Image

我想创建代码,其中如果任何文本框为空,那么它会将文本框文本替换为“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/

相关文章:

.net - 捕获窗体的按键而不是控件的按键

vb.net - 什么都没有和 system.DBNull 的区别

objective-c - 不同情况下带if语句的NSNumber

angular - 模板中的 ngIf-else

c# - 为什么在将 C# 代码编译为 IL 时会创建 .ctor()?

c# - 是否有比较简单的文件版本比较方法?

c# - 领域模型映射

c# - Sitecore:在类型为 ="DateTime"的 sitecore 字段中保存日期 <Input type ="text">

javascript - 基于字符计数的 if/else 条件 jQuery

c# - 使用网格中的文本框和带有属性的标签设计用户控件