如何在Windows窗体上运行时将控件停靠在面板中?

时间:2009-07-27 20:06:00

标签: vb.net winforms

我正在使用winforms设计一个简单的用户界面。在设计器中,我在表单上有一个面板,并希望在运行时将datagridview控件添加到面板中,并将datagridview的dock属性设置为'Fill',以便填充面板。

我正在努力做到这一点,以下代码对我来说不起作用:

Dim MyDataGridview as New DataGridView()
MyDataGridView.Dock = DockStyle.Fill
Me.MyPanel.Controls.Add(MyDataGridview)

有人能帮我指出正确的方向吗?

编辑:

抱歉模糊不清 - 我没有收到错误,但数据网格视图不可见。它被添加到面板“后面”,所以我尝试使用.SendToBack()和.BringToFront()方法,认为面板隐藏了datagridview,但这似乎也不起作用。无论如何,似乎数据网格视图正被添加到表单中但只是没有停靠在面板中

4 个答案:

答案 0 :(得分:1)

实际上,你的代码应该可以工作,但是你确实意识到你只会得到一个没有列表的灰色矩形等?

无论如何,以下内容应该更可靠:

Dim MyDataGridview as New DataGridView()
Me.MyPanel.Controls.Add(MyDataGridview)
MyDataGridView.Dock = DockStyle.Fill
MyDataGridView.Visible = True

答案 1 :(得分:1)

在将DataGridView添加到面板后设置Dock属性,然后调用“ BringToFront()”来更改Z-index。

我认为Z-index部分就是诀窍;)

答案 2 :(得分:0)

这发生在我身上,但我忘了在添加面板后取消暂停容器的布局逻辑:)。所以我需要的只是:

 Container.ResumeLayout() ' docking works now!

答案 3 :(得分:0)

试试这个:

Dim MyDataGridview as New DataGridView()
MyDataGridView.Parent = Me.MyPanel
MyDataGridView.Dock = DockStyle.Fill
MyDataGridView.Show