我有多个文本块我想比较文本值和我的数组中当前的随机值,所以我可以"灰色"当文本块被打开"打开"。
这段代码适用于1个文本块,但是我想知道如何为所有26个块执行此操作而不必输入每个块?有没有办法可以引用我的所有块,就像对我的所有按钮使用相同的点击事件一样?
if (money[turns]==Convert.ToInt32(tb0.Text))
{
tb0.Foreground = Brushes.Gray;
}
答案 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;
}
}