C# 按标记查找多个控件

C# 按标记查找多个控件,c#,winforms,C#,Winforms,对于C#来说,我是一个新手,我正在开发一个WinForms应用程序(一个小游戏),在这个程序中,我希望几个图片框的行为相同(但不是全部)。通过在网上四处查看,我认为最快的方法是使用标签,根据我的发现,我最初的想法是将它们放在下面: foreach (??? pb in ???.Find???WithTag("enemy")) 我的问题是,应该用什么来代替?Visual Studio既不接受“FindPictureBoxWithTag”也不接受“FindPictureBoxWithTag”。f

对于C#来说,我是一个新手,我正在开发一个WinForms应用程序(一个小游戏),在这个程序中,我希望几个图片框的行为相同(但不是全部)。通过在网上四处查看,我认为最快的方法是使用标签,根据我的发现,我最初的想法是将它们放在下面:

foreach (??? pb in ???.Find???WithTag("enemy")) 
我的问题是,应该用什么来代替?Visual Studio既不接受“FindPictureBoxWithTag”也不接受“FindPictureBoxWithTag”。

foreach(this.Controls.OfType()中的变量pb。其中(p=>p.Tag==“敌人”)
{
}

this.Controls
替换为包含图片框的任何集合/容器

一个容器
Control
有一个
Controls
属性,您可以迭代以找到它的直接后代。无论如何,WinForms是一个UI框架。您不应该将游戏逻辑绑定到UI。UI应该只表示一个状态您可以在业务逻辑中进行计算。您可以使用事件和数据绑定将UI绑定到BL。但我认为这在刚开始时有点难以理解。
foreach(var pb in this.Controls.OfType<PictureBox>().Where(p=>p.Tag == "enemy")
{
}