1

我正在开发一个应用程序,该应用程序根据正在查看的对象向用户提供各种数据。这些对象都是相同的接口,只是具有超越一次区分的扩展属性。

我正在寻找向用户显示依赖于类型的控件的“最佳”方式。我想使用标签,但我被 .NET 2.0 困住了,从我能收集到的唯一方法来隐藏/显示标签是删除它们并重新添加它们。这可能是最好的方法,但会导致有关 GUI 组件闪烁、重新加载时保持活动选项卡上的选项卡等问题。

我可以为每个控件制作自定义控件,或者将它们全部加载并在必要时隐藏/显示(我过去在项目中做过),或者处理并重新实例化它们......

为了更好地澄清,我想说代码优雅和程序效率之间最接近的平衡。

4

3 回答 3

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;
}
于 2009-06-02T19:43:49.383 回答
0

您可以为每个对象创建一个面板并让一个字典将对象类型和面板关联起来吗?

如果面板大小相同,您可以告诉面板放在前面,或者将所有 Panels.Visible 设置为 false,然后将您需要的设置为 true。

于 2009-06-02T19:44:44.483 回答
0

我已将DockPanel Suite用于需要多个选项卡的应用程序。它是一个开源项目,因此您可以根据需要实际修改代码。

该套件有很多功能,但是,如果您可以只使用选项卡。

于 2009-06-02T19:47:01.437 回答