[英]Referencing objects using a variable (c#)
我一直在做一个程序,在执行过程中需要更改对象属性。 为了便于管理,我保留了原始对象名称,即“ button1”
我的问题是是否有一种方法可以通过循环更改变量来引用对象名称
我不得不写一些东西
private void disable ()
{
this.button1.Visible = false;
this.button2.Visible = false;
this.button3.Visible = false;
//...
}
我尝试过类似的东西
int a;
for(a=1;a==50;a++)
{
this.buttona.Visible =false;
}
这显然没有用
那有没有办法我可以用变量引用对象呢?
提前致谢
您可以使用以下代码:
foreach (var c in this.Controls)
{
if (c is Button button)
button.Visible = false;
}
或者这个:
for (int i = 0; i < 50; i++)
{
var c = this.Controls["button" + i];
(c as Button).Visible = false;
}
如果您未执行UWP,WPF等,则此功能可能不起作用。如果您正在执行UWP,WPF等,则可能会有所帮助。 由于所有这些按钮都属于一个面板(我认为是这样),面板的子代或内容应该是IEnumerable
对象,可以通过foreach
循环对其进行处理。 例如,如果我具有以下XAML代码:
<Grid x:Name="myGrid">
<Button x:Name="Button1" Tag="myButton1"/>
<Button x:Name="Button2" Tag="myButton2"/>
<!-- ... -->
</Grid>
我可以使用以下方法遍历按钮:
foreach(Button button in myGrid.Children){
if(!button.Tag.StartsWith("myButton")) continue;
button.Visibility = Visibility.Collapsed;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.