Я новичок в C#, и я использую окна.Как я могу показать один пользовательский элемент управления и скрыть остальные в C#
У меня есть Form1
с 20 buttons
и 20 user controls
. То, что я пытаюсь сделать, это:
Когда я нажимаю button1
user control1
показывает, и остальная часть user controls
шкурой, нажмите button2
user control2
показывает, и остальная часть user controls
шкурой, нажмите button3
user control3
показывает, и остальная часть user controls
прятки скоро. Я могу использовать UserControl.visible = True
, чтобы показать один user control
и скрыть остальные, установив остальную часть user controls visibility = False
, но я не хочу писать слишком много кода.
Так вместо этого я использовал следующий простой код, чтобы показать только один user control
в то время, когда соответствующая button
щелкают и скрыть остальные user controls
, но этот код не работает он работает без ошибок, но user controls
до сих пор видны.
Кто-нибудь знает, почему этот код не показывал one user control
и скрыл остальные? Я буду рад услышать и другие идеи. Спасибо
private void button1_Click(object sender, EventArgs e)
{
foreach (Control ctrl in this.Controls)
{
if (ctrl .GetType() == typeof(UserControl))
{
ctrl .Visible = false;
}
}
UserControl1.visible = True;
}
Возможно, потому что это вложенный элемент управления. В настоящее время ваша петля проходит только через верхние элементы управления. Если один 'control.Controls' не пуст, эти дочерние элементы управления игнорируются. Вы можете использовать метод повторного использования. Вы использовали отладчик? Выполняется ли 'ctrl .Visible = false' вообще? –
Вместо ctrl .Visible = false; возможно ctrl .IsVisible = false; – Jamaxack