2013-03-04 52 views
0

有人可以提出实现我的目标的最佳方式吗?C#WinForms以编程方式添加控件

所以,我有一个三个按钮的形式。我想要的是,取决于在面板上按下哪个按钮应该显示不同的控件(用户控件)。我以一种简单的方式做到了这一点:所有内容都是从一开始就添加的,我只是对可见性做出了改变。但是,如果有人能够提出一种更合适的方式,那么最好不过,因为不需要从头开始创建对象。

+0

尝试使用'ASP:UpdatePanel':HTTP://ajax.net-tutorials .com/controls/updatepanel-control/ – markzzz 2013-03-04 16:36:55

+7

@markzzz对于Windows Forms? – 2013-03-04 16:37:09

+1

你试过了什么?你真的应该发布你的代码;没有看到你已经做了什么,很难提出修改建议。 – Brian 2013-03-04 16:37:24

回答

7

您可以随时创建相应的UserControl,并在运行时将其添加到Panel.Controls。这将允许您根据需要创建控件,而不是初始化表单。

+0

这当然是可能的,但是我建议就更难设计和更复杂些。最好让他们都在那里,并根据输入简单地显示/隐藏。 – Liath 2013-03-04 16:40:59

+1

@Lath这真的取决于 - 如果用户控件有很长的初始化,先创建3就可以创建UI打嗝。有时懒惰加载是非常合适的 - 但它确实取决于场景。 – 2013-03-04 16:41:45

+0

@Lath这是一个非常糟糕的想法,因为控件在设计时会彼此重叠,并且每个控件都会加载到内存中,而这些内容不需要。 – 2013-03-04 16:43:16

0

我确实会在设计时创建控件 - 如果没有动态创建它们的优势。为什么复杂的事情?

如果有多个控件,我会把他们都在(面板中你已经提到)面板所以你只能改变单一控制(面板)的可见性,而不是每一个内它。

当你按下相应的按钮显示相应的面板(记住隐藏您以前显示他们的情况下,其他人)

+1

我同意 - 除非控件有很长的初始化时间,在这种情况下,创建3可能比必要的慢(即:创建UI呃逆) – 2013-03-04 16:40:54

相关问题