C# 是否将当前值与表单上的所有文本块进行比较?

C# 是否将当前值与表单上的所有文本块进行比较?,c#,C#,我有多个文本块,我想将其文本值与数组中的当前随机值进行比较,以便在文本块“打开”时将其“灰显” 这段代码适用于1个文本块,但我想知道如何才能在不必键入每个文本块的情况下对所有26个文本块执行此操作?是否有一种方法可以引用我的所有块,就像对我的所有按钮使用相同的单击事件一样 if (money[turns]==Convert.ToInt32(tb0.Text)) { tb0.Foreground = Brush

我有多个文本块,我想将其文本值与数组中的当前随机值进行比较,以便在文本块“打开”时将其“灰显”

这段代码适用于1个文本块,但我想知道如何才能在不必键入每个文本块的情况下对所有26个文本块执行此操作?是否有一种方法可以引用我的所有块,就像对我的所有按钮使用相同的单击事件一样

if (money[turns]==Convert.ToInt32(tb0.Text))
                    {
                        tb0.Foreground = Brushes.Gray;
                    }

如果
Windows.Forms
您可以迭代
TextBox
类型,并将您的文本与每个文本框中的文本进行比较。代码应该是这样的:

bool exists = GetAll(this, typeof(TextBox)).Any(t => t.Text.Equals(yourText));

如前所述,最好使用数据绑定并在对象中进行搜索,而不是在界面中进行搜索。

作为Alexei的补充,如果您只想比较特定的TextBlock,首先可以将
TextBlock
插入列表中

List<TextBlock> listTextBlock = new List<TextBlock>();
list.Add(tb0);
list.Add(tb1);

为什么不在所有的
文本框中循环执行此验证?在表单的
控件
属性中有它们,只需检查其类型以确保它是您感兴趣的类型。应用程序类型是什么?形式?WPF?你问错问题了。当你需要这样做时,它几乎总是一种设计的味道。您应该使用数据绑定、标记或名称来标识哪个控件显示什么。无论如何,“[您的UI框架]查找所有控件”将产生大量结果。抱歉!WPF是应用程序类型。列表解决方案对我和我正在寻找的都非常有效。这正是我想要的。谢谢
foreach(TextBlock item in listTextBlock)
{
   if (money[turns]==Convert.ToInt32(item.Text))
   {
      item.Foreground = Brushes.Gray;
   }
}