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

时间:2016-01-04 17:29:34

标签: c#

我有多个文本块我想比较文本值和我的数组中当前的随机值,所以我可以"灰色"当文本块被打开"打开"。

这段代码适用于1个文本块,但是我想知道如何为所有26个块执行此操作而不必输入每个块?有没有办法可以引用我的所有块,就像对我的所有按钮使用相同的点击事件一样?

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

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

...所以你只需使用循环检查每个TextBlock

foreach(TextBlock item in listTextBlock)
{
   if (money[turns]==Convert.ToInt32(item.Text))
   {
      item.Foreground = Brushes.Gray;
   }
}