在窗體內使用C#隱藏窗體加載時的所有特定控件是否可能標籤或按鈕,然後選擇顯示那些我不想顯示的內容?C#隱藏所有標籤/控件
我有一個程序,其中包含很多按鈕和標籤,但我只想要加載時顯示一個或兩個,我覺得對每個標籤label1.Hide();
這種方法似乎效率低下,但我可以只顯示我想要的標籤當我想要。也許使用一個循環,這樣的事情:
foreach (Label)
{
this.Hide();
}
在窗體內使用C#隱藏窗體加載時的所有特定控件是否可能標籤或按鈕,然後選擇顯示那些我不想顯示的內容?C#隱藏所有標籤/控件
我有一個程序,其中包含很多按鈕和標籤,但我只想要加載時顯示一個或兩個,我覺得對每個標籤label1.Hide();
這種方法似乎效率低下,但我可以只顯示我想要的標籤當我想要。也許使用一個循環,這樣的事情:
foreach (Label)
{
this.Hide();
}
這聽起來像你可以只隱藏他們都在設計師,然後你就不會對付隱藏他們在運行時。
如果確實有將其隱藏在運行時,那麼你就可以抓住所有的控制某種類型的表格上有一點LINQ:
foreach (var lbl in Controls.OfType<Label>())
lbl.Hide();
基於他們的名字你甚至可以過濾控制,所以你只隱藏你想隱藏的那些:
foreach (var lbl in Controls.OfType<Label>().Where(x => x.Name != "lblAlwaysShow"))
lbl.Hide();
如果他們還在其他控件,如面板或GroupBoxes的裏面夾着,你必須通過自己的ControlCollections迭代太:
foreach (var lbl in panel1.Controls.OfType<Label>())
lbl.Hide();
foreach (var lbl in groupBox1.Controls.OfType<Label>())
lbl.Hide();
隱藏設計師的控制器當時並沒有出現在我的腦海裏,但是第一個人也做了這個訣竅,我要試着看看最適合我的程序是什麼,謝謝! – John
試試這個:
foreach(Label l in this.Controls.OfType<Label>())
{
l.Visible=false;
}
this.myControl.Visible=true;
您也可以用較少的代碼嘗試此操作。它工作的另一種形式控件(等文本框,按鈕...)
foreach (Control lbl in Controls)
{
if ((lbl) is Label)
{
lbl.Hide();
}
}
您可以循環通過窗體控件,並檢查它們是否是你想要然後隱藏它們。 – deathismyfriend
將它們放入列表中:列出,並根據需要使用它們隱藏和顯示。請注意,除非他們坐在FlowLayoutPanel中,否則其他控件將不會更改其位置!或者將某些值設置爲它們的標籤,並在想要顯示或隱藏某些標籤時對其進行測試。 –
TaW