Windows窗体应用程序显示一个主窗体。这个主窗体包含几个不同的面板控件。根据这种形式的某些条件,这些面板控件中的一个应该被激活,而其他的则不可见。在Windows窗体应用程序中覆盖两个面板
第一个面板包含DataGridView,第二个面板包含控件以显示DataGridView的详细信息。单击添加按钮(或)在DataGridView中选择一条记录时,第二个面板应该是可见的。我使用Visible属性来显示和隐藏面板,但是屏幕截图中显示的差距正在显示。
请建议处理此问题的最佳方法。
Windows窗体应用程序显示一个主窗体。这个主窗体包含几个不同的面板控件。根据这种形式的某些条件,这些面板控件中的一个应该被激活,而其他的则不可见。在Windows窗体应用程序中覆盖两个面板
第一个面板包含DataGridView,第二个面板包含控件以显示DataGridView的详细信息。单击添加按钮(或)在DataGridView中选择一条记录时,第二个面板应该是可见的。我使用Visible属性来显示和隐藏面板,但是屏幕截图中显示的差距正在显示。
请建议处理此问题的最佳方法。
你只需要在面板共享相同的位置。您可能不希望在设计时这样做,因为这会使未来的表单维护变得困难。
在Form.Load
事件中,设置底部面板的位置以匹配顶部面板的位置。
PanelDetails.Location = PanelDataGrid.Location;
现在当你隐藏一个并显示另一个时,它们会出现在同一个地方。
最聪明的方法是让面板与设计师分开。通过这种方式,可以更轻松地完成对它们的任何编辑,并且可以立即看到所有实际的对象。
在设计师中,将其他面板的Visible
属性设置为False
,除了顶部的第一个。
Form.Load
:
设置所有其它面板的位置,以匹配所述第一面板的位置(在顶部)
将窗体的高度,以匹配期望的高度,这适合您heightest面板
使用按钮来切换面板的可见性(以及可能的形式高度太)
它运行良好,它们出现在同一个地方。但窗口大小与设计中相同。我们可以根据活动面板大小来设置窗口大小吗?有没有其他的选择? – Sanjeev4evr
在子窗体中,包含面板的窗体中,尝试将此行添加到Form.Load事件中:WindowState = FormWindowState.Maximized; –