在一个面板上,“切换”两个用户控件的最佳方法是什么?

3

我创建了两个单独的 UserControls,并且(根据选择的 RadioButton)希望其中一个被显示。

现在,我只是将每个 UserControl 的一个实例拖到表单上,并将一个放在另一个上面(设置一个 .Visible = false;)。

这样做还可以,但我想知道是否有更好或更合适的方法?


请不要在标题前加上 "c#: " 等内容,这是标签的作用。 - John Saunders
可能是在C#中创建Windows窗体向导的重复问题。 - Hans Passant
1个回答

4

这是完全合理的。

如果你担心保留不再使用的资源,你可以添加一个面板,并从其中添加或移除控件。

例如:

try
{
    panel.SuspendLayout();
    panel.Controls.Remove(userControl1);
    panel.Controls.Add(userControl2);
}
finally
{
    panel.ResumeLayout();
}

如果用户控件执行连接到数据源等操作,您可能需要实际处置和重新创建它们。这主要取决于控件的复杂程度。如果它们只是捕获一些属性,您当前的解决方案就很好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接