更改和传递 tabControls tabPage 内的内容

2024-02-26

我正在使用 Windows 窗体应用程序并遇到以下问题。我在应用程序中使用 tabControl,当用户执行特定操作时,需要更改某些 tabPage 内的内容。

例如,一个 tabPage 包含一个文本区域和一个按钮,当用户单击按钮时,文本区域内的信息应该以某种方式存储,并且同一个 tabPage 应该显示新内容,例如更多文本区域、按钮等,我认为通过使用其中的视图更容易做到,因此可以隐藏一个视图并显示另一个视图。


这在某种程度上是一个品味问题。您可以选择在一种方法中逐个显示和隐藏控件,也可以将它们分组到 UserControl 中,然后在一个命令中显示或隐藏该控件。

我会根据以下问题做出这样或那样的决定:

  • 是否有始终可见的控件以及它们的布局如何?

  • 有多少个控件可以显示/隐藏?

  • 是否需要重复使用您的一个或多个视图?

最后一个问题可能会产生很大的影响:如果您想重复使用,请选择UserControl。它基本上就是为了做到这一点:对控件进行分组,就像表单一样。

在我看来,对于几个控件来说,一一执行(在 switchViewMode 方法中)就足够了。

要添加 UC,请在项目资源管理器中右键单击您的项目,然后选择add - usercontrol。然后选择了一个好名字,例如 UC_Goods 或 UC_Services 或您的商店政策建议的任何内容。

然后您将看到空的 GUI。现在添加您需要的控件。

这里需要做出一个决定:如果您要重用它,请确保控件具有通用名称!如果没有也没关系。原因是,当您添加同一 UC 的两个实例时,它们的控件将具有相同的名称,并且您必须通过父级(UC)对它们进行限定

在这里您还可以编写事件等脚本。

最后根据需要将实例添加到 TabPage,如下所示:

public UC_Goods uc_goodsDelivered = new UC_Goods();
public UC_Goods uc_goodsOnHold = new UC_Goods();
public UC_Services uc_ItServices = new UC_Services ();

public Form1()
{
  InitializeComponent();
  tab.tp_goodsPage.Controls.Add(uc_goodsDelivered);
  tab.tp_goodsPage.Controls.Add(uc_goodsOnHold);
  goodsOnHold.Hide();
  tab.tp_goodsPage.Controls.Add(uc_ItServices);
  uc_ItServices .Hide();
  // take care of dock style or anchors..
  // ..and initialzing fields..
}

这声明了两个 UC 类以及每个类的两个和一个实例。只有一个可见。由于一个类被使用两次,它的控件的名称不明确,直到您限定它们,例如像这样:uc_goodsDelivered.Status...

hth

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改和传递 tabControls tabPage 内的内容 的相关文章

随机推荐