在Windows窗体应用程序中叠加两个面板

时间:2014-04-04 04:19:56

标签: c# winforms datagridview overlay

Windows窗体应用程序显示主窗体。此主窗体包含几个不同的Panel控件。根据该形式的某些条件,其中一个Panel控件将被激活而其他控件不可见。

第一个面板包含一个DataGridview,第二个面板包含用于显示DataGridView细节的控件。在“添加”按钮上单击(或)在“选择DataGridView中的记录”时,应该可以看到第二个面板。我正在使用Visible属性来显示和隐藏面板,但差距显示在屏幕截图中显示。

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

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:3)

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

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

PanelDetails.Location = PanelDataGrid.Location;

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

答案 1 :(得分:1)

最明智的方法是将面板与设计师分开。这样,对它们进行的任何编辑都可以更容易地完成,并且可以立即看到所有实际对象。

在设计师中,设置其他面板' Visible的{​​{1}}属性,除了顶部的第一个属性。

False

  • 设置所有其他面板'匹配第一个面板位置的位置(在顶部)

  • 设置表单的高度以匹配所需的高度,这适合您最轻的面板

  • 使用按钮切换面板可见性(也可能是表单高度)