2016-01-03 44 views
0

对C#来说很新颖,我正在开发一个WinForms应用程序(一个小游戏),我希望多个图片框的行为相同(不是所有的都是这样)。环视在线,我想最快的方式是使用标签和我最初的想法的基础上,我学到了什么,就是把他们下是这样的:通过标记查找多个控件

foreach (??? pb in ???.Find???WithTag("enemy")) 

我的问题是,应该怎样去代替“???”? Visual Studio既不接受“FindPictureBoxWithTag”也不接受“FindPictureBoxesWithTag”。

+4

容器'Control'有你可以遍历找到它的直接后裔'Controls'属性。无论如何,WinForms是一个UI框架。你不应该将你的游戏逻辑绑定到你的UI。用户界面应该只是_表示您在业务逻辑中计算的状态。您可以使用事件和数据绑定将UI绑定到BL上。但我想这刚刚开始时有点太难掌握。 – CodeCaster

回答

7
foreach(var pb in this.Controls.OfType<PictureBox>().Where(p=>p.Tag == "enemy") 
{ 
} 

更换this.Controls与任何集合/容器包含图片框