我正在 Visual Studio 2012 (c#/Winforms) 上创建一个应用程序。
图像所描绘的正是我所想的:

当单击 Button1 时,groupbox 中的内容会发生变化,与按钮 2 和 3 相同。

我目前正在使用以下内容:

private void button2_Click(object sender, EventArgs e)
{
    this.Controls.Remove(this.groupBox1);
    this.Controls.Add(this.groupBox2);
}

我的问题是:

a) 通过使用它,运行时性能是否会因为所有控件同时处于事件状态(尽管隐藏)而受到阻碍?
b) 考虑我继续使用当前的方法,我可以创建一个新的工作区并在不同的窗口中构建每个组框吗?
c) 我目前的方法有解决方法吗?

谢谢。

最佳答案

更好的是:

private void button2_Click(object sender, EventArgs e)
{
    groupbox2.Visible = true;
    groupbox1.Visible = !groupbox2.Visible;
}

同样
private void button1_Click(object sender, EventArgs e)
{
    groupbox1.Visible = true;
    groupbox2.Visible = !groupbox1.Visible;
    groupbox3..... = !groupbox1.Visible; //etc
}

这将提高性能,并且添加和删除控件也会对复杂的 guis 产生副作用,其中控件无法正确定位。

回答你:

a) 不多,但正如我所说,最好切换可见性。

b) 什么是工作空间?当然,您可以从任何窗口或表单继续使用您的方法。但是,如果您将一个表单的分组框添加到另一个表单中,则第一个表单中的分组框将被删除。

c) 我的回答..

关于c# - 如何在单击按钮时动态更改分组框?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14659047/

10-13 06:19