【发布时间】:2011-08-29 16:56:50
【问题描述】:
目前我有一个带有 Windows 窗体的 C# 程序,然后将用户控件模板放到窗体上。用户控件模板实际上只是用作占位符。我有一系列从这个用户控件模板继承的其他控件。
每个控件都有导航按钮,例如“继续”和“返回”,每个控件都知道接下来需要加载哪个控件。然而,我需要弄清楚的是一种更简单的方法来获得这些控件的全局变量。
我唯一的解决方法是在加载表单时将表单传递给每个控件,并使用表单内部的变量来读取和写入。让这些用户控制屏幕中的每一个都由包含所有控件可以访问的对象的基本控件构建的正确方法是什么?
对于这篇文章的漫无边际的性质感到抱歉,但我整个上午都在考虑这个问题。
以下是部分代码:
我写的大部分内容都是基于隐藏和显示用户控件,这样控件中的内容就不会在导航过程中丢失。我不需要这样做,因为最终它将从数据库中加载数据字段。
从表单点击初始加载控件的代码:
conTemplate1.Controls.Clear();
conInbound Inbound = new conInbound(this);
Inbound.Dock = DockStyle.Fill;
Inbound.Anchor = (AnchorStyles.Left | AnchorStyles.Top);
conTemplate1.Controls.Add(Inbound);
其中一个控件内的“继续”按钮的代码:
if ((Parent.Controls.Count - 1) <= Parent.Controls.IndexOf(this))
{
UserControl nextControl = new conPartialClear();
nextControl.Dock = DockStyle.Fill;
Parent.Controls.Add(nextControl);
this.Hide();
Parent.Controls[Parent.Controls.IndexOf(this) + 1].Show();
}
else
{
this.Hide();
Parent.Controls[Parent.Controls.IndexOf(this) + 1].Show();
}
【问题讨论】:
标签: c# winforms interface user-controls