我正在开发一个应用程序,根据所查看的对象向用户显示各种数据。这些对象都具有相同的接口,只有扩展属性才能超越一次。
我正在寻找向用户显示类型相关控件的“最佳”方式。我想使用选项卡,但我坚持使用.NET 2.0,从我可以收集的内容中隐藏/显示选项卡的唯一方法是删除它们并重新添加它们。这可能是最好的方法,但这会导致有关GUI组件闪烁的问题,在重新加载时保持活动选项卡的标签等。
我可以为每个人制作自定义控件,并将它们全部加载并在必要时隐藏/显示(我过去在项目中做过),或者处理并重新实例化它们......
为了澄清最好,我会说代码优雅和程序效率之间最接近的平衡。
答案 0 :(得分:0)
我已经使用并且运气最好,然后显示/隐藏所需的一切。
处理和重新实例化所有事情总是让事情变得非常混乱。
为了不让加载时间变得可怕,你可以在第一次使用时实例化它们。类似的东西:
IView LoadView(Type dependantType)
{
// get the view or create one
IView view = GetView(dependantType);
if (view == null)
{
view = InstantiateViewAndAddToForm(dependantType);
AddView(view);
}
//
// do some binding to your model or whatever here
//
// make the correct view visible
foreach (IView v in Views)
view.Visible = v == view;
}
答案 1 :(得分:0)
您是否可以为每个对象创建一个面板,并让字典关联对象类型和面板?
如果它们的大小相同,你可以告诉小组将它们带到前面,或者将所有Panels.Visible设置为false,然后设置你需要的那个。
答案 2 :(得分:0)
我已将DockPanel Suite用于需要多个标签的应用程序。 它是一个开源项目,因此您可以根据需要实际修改代码。
如果你可以使用标签,套件有很多功能。