我制作了一个包含许多页面的程序......在我的设计中,按钮最终会堆积起来,因此越多越难以工作。
这个问题是这个topic的克隆。 但是,由于他们谈论的是xaml和wpf,我没有真正得到答案。
我还尝试制作多个窗体,隐藏并显示它们以将其拆分。 但是当我隐藏并显示一个窗口时,很容易看到GUI逐渐消失,看起来很难看。
我想要一个即时隐藏/显示功能,所以看起来它只是一个带有1个窗口的程序,现在正在切换。
那么,使大型windowsforms程序更易于管理的技术是什么?
答案 0 :(得分:0)
您可以创建一些 UserControls ,组织并分离您的逻辑。然后,您可以使用字符串数组来存储您的控件名称,并通过项目迭代以显示适当的视图。表单可以将 Panel 作为容器,将 Dock 样式定义为填充。简化的代码如下所示:
public class MyContainer:Control
{
public MyContainer(string szControlName, UserControl nControl)
{
UserControlName = szControlName; MyControl = nControl;
}
public string UserControlName { get; set; }
public UserControl MyControl { get; set; }
}
主要形式:
public List<MyContainer> MyNavigationArray;
public void InitArray()
{
MyNavigationArray = new List<MyContainer>(MyFormPageCount);
for (int i = 0; i < MyFormPageCount; i++)
{
MyNavigationArray.Add(new MyContainer(TheNameOfUserControl, new PredefinedUserControl()));
}
}
private void NextButton_click(object sender, EventArgs e)
{
MyContainer mYcn = this.panel1.Controls[0] as MyContainer;
int nCurPos = MyNavigationArray.IndexOf(mYcn);
if (nCurPos < MyNavigationArray.Count)
{
panel1.Controls.Clear();
MyContainer c = MyNavigationArray[nCurPos + 1];
panel1.Controls.Add(c);
c.Dock = DockStyle.Fill;
}
}
存储在用户控件中的所有信息都将在您的数组中,以后可以使用。 希望这有帮助。