簡體   English   中英

使用變量引用對象(C#)

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM