[英]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.