网格按钮。在程序的开始,我想让所有按钮的文字都变成“—”,表示那个坐标没有人在射击。我似乎找不到一种方法来重命名循环中的所有按钮。这些按钮都有名称b00、b01、b02...显示它们的坐标。第一个数字是行,第二个数字是列。(即b69代表第7行,第10列)。希望你能帮忙!先感谢您!Luke您还可以使用扩展方法OfType()来根据指定类型进行过滤。请参阅下一个示例foreach(Buttonbtninthis.Controls.OfType()){btn.Text="NewName";正如您通过使用OfType扩展方法所见,您不需要将控件转换为按钮类型希望有帮助。问候这个怎么样:foreach(Controlcinthis.Controls){if(cisButton){((Button)c).Text="---";}}这段代码循环遍历表单上的所有控件(this),检查每个控件是否都是Button并且其Text属性设置为“—”。或者,如果您的按钮位于其他容器(例如Panel)上,您可以将this.Controls替换为yourPanel.Controls。您可以从父容器中获取控件列表并循环遍历它们。像这样:foreach(myForm.Controls中的Controlc){if(c是Button){((Button)c)。}}考虑将每个按钮添加到列表中://实例化一个列表(在表单类级别)ListbuttonList=newList();//将每个按钮添加到列表中(将其放在表单加载方法中)buttonList.add(b00);buttonList.add(b01);...等等...然后你可以像这样设置一个给定的按钮:buttonList(0).Text="---"//setsb00orallbuttons:foreach(ButtonbinbuttonList){b.Text="---";其他可能性比比皆是:在这种情况下,我所做的是将我想要经常操作的控件存储到一个List或最好是一个IEnumerable集合中,我通常在构建时或在包含控件的Load事件处理程序的Init中执行此操作(例如,如果这些控件包含在Form或GroupBox中。通过这样做,我希望减少每次需要集合时必须查找这些控件的次数。如果您只需要这样做一次,我不会费心添加按钮集合。所以,像这样://我需要操作的对象集合,//在你的例子中,按钮//只有当你需要在你的程序中多次使用列表时才需要privatereadonlyIEnumerablebuttons;函数或加载事件处理程序:this.buttons=this.Controls.OfType();然后,每当我需要更新这些控件时,我就使用这个集合:以上是C#学习教程:HowtorenameinC#Allthecontentsharedbymultiplebuttonsinaloop,如果对你有用,你需要了解更多C#学习教程,希望大家多多关注—foreach(varbuttoninthis.buttons){button.Text=@"---";//可能想检查按钮的名称是否与您期望的模式匹配//如果集合包含您不想更改的其他//按钮}foreach(Controlcinthis.Controls){if(c.type==newButton().type){Buttonb=(Button)c;b.文本=“”;}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
