在运行时以编程方式对接用户控件

时间:2009-07-07 18:47:45

标签: runtime user-controls dock

我需要在运行时停靠WinForms用户控件,但我遇到了问题。

在我的主要表单中,我的顶部有一个菜单条。我想以编程方式添加一个停靠在主窗口左侧和菜单条下方的UserControl。

当我在运行时添加我的User控件然后将其Dock属性设置为DockStyle.Left时,它不会出现在menustrip下面,而是占据表单的整个左侧。这导致menustrip被推向右侧并且看起来并不吸引人。

我需要在运行时执行此操作,因为项目需要能够自定义哪个用户控件可以显示在每个用户的主窗体左侧。

非常感谢任何寻找答案的帮助。

2 个答案:

答案 0 :(得分:1)

快速而肮脏的方法是在MenuStrip下面添加一个Panel(停靠在Left或Full),然后将UserControl添加到Panel。

编辑:发生的事情是控件添加到容器的顺序决定了它们在表单上的显示方式。由于您在创建表单后的某个时刻以编程方式执行此操作,因此UserControl是添加到表单的最后一个Control,因此它将影响表单上已有的项目。如果您在表单上有一个面板,可以根据需要显示内容,则将UserControl添加到面板只会影响面板内的那些项目,而不会影响表单的其余部分。

答案 1 :(得分:0)

添加一个停靠在工具栏下方的面板,并将用户控件添加到该容器中。

编辑:已经回答。