Winforms添加和删除UserControls

时间:2016-04-12 08:35:57

标签: c# winforms user-controls

所以我的应用程序使用单一主表单,并在表单左侧显示一个菜单。

在右侧,我有panel作为我创建的任何UserControl的占位符。

每次菜单项上的用户clicks,相关的UserControl都会使用以下代码显示:

//Display UserControl first
ucMyUserControl uc = new ucMyUserControl ();
uc.Dock = DockStyle.Fill;
pnlContainer.Controls.Add(uc);

是否有更好的方法,只需复制并粘贴每个按钮或每当我想显示UserControl时。我应该创建一个每次调用的函数,只是传递我想要使用的UserControl的名称吗?

也许我首先用我使用它的方式弄错了 - 我是这个概念的新手,只是尝试一下。

1 个答案:

答案 0 :(得分:3)

当然,不要重复自己。使用辅助方法编写DRY代码。它看起来像这样:

public void ShowPage(UserControl uc) {
    while (pnlContainer.Controls.Count > 0) pnlContainer.Controls[0].Dispose();
    uc.Dock = DockStyle.Fill;
    pnlContainer.Controls.Add(uc);
}

现在您只需致电ShowPage(new ucMyUserControl());

请注意,古怪的while循环非常重要,您不只是想使用Controls.Remove()方法。处置您删除的控件非常重要,如果不这样,那么它们将永远存在并最终导致程序崩溃。