2014-04-04 44 views
1

Windows窗体应用程序显示一个主窗体。这个主窗体包含几个不同的面板控件。根据这种形式的某些条件,这些面板控件中的一个应该被激活,而其他的则不可见。在Windows窗体应用程序中覆盖两个面板

第一个面板包含DataGridView,第二个面板包含控件以显示DataGridView的详细信息。单击添加按钮(或)在DataGridView中选择一条记录时,第二个面板应该是可见的。我使用Visible属性来显示和隐藏面板,但是屏幕截图中显示的差距正在显示。

请建议处理此问题的最佳方法。

enter image description here

enter image description here

回答

3

你只需要在面板共享相同的位置。您可能不希望在设计时这样做,因为这会使未来的表单维护变得困难。

Form.Load事件中,设置底部面板的位置以匹配顶部面板的位置。

PanelDetails.Location = PanelDataGrid.Location; 

现在当你隐藏一个并显示另一个时,它们会出现在同一个地方。

+0

它运行良好,它们出现在同一个地方。但窗口大小与设计中相同。我们可以根据活动面板大小来设置窗口大小吗?有没有其他的选择? – Sanjeev4evr

+0

在子窗体中,包含面板的窗体中,尝试将此行添加到Form.Load事件中:WindowState = FormWindowState.Maximized; –

1

最聪明的方法是让面板与设计师分开。通过这种方式,可以更轻松地完成对它们的任何编辑,并且可以立即看到所有实际的对象。

在设计师中,将其他面板的Visible属性设置为False,除了顶部的第一个。

Form.Load

  • 设置所有其它面板的位置,以匹配所述第一面板的位置(在顶部)

  • 将窗体的高度,以匹配期望的高度,这适合您heightest面板

  • 使用按钮来切换面板的可见性(以及可能的形式高度太)

相关问题