我是C#的新手,正在使用Windows Forms。
我有一个名为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
来隐藏其余部分,但是我不想写太多代码。
所以我使用了以下简单的代码来在相关的button
被点击时只显示一个user control
并隐藏其余的user controls
,但这段代码没有起作用,虽然没有出现错误,但user controls
仍然可见。
有人知道为什么这段代码没有显示一个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
是否被执行了? - Tim Schmelter