C# 在windows窗体应用程序中覆盖两个面板

C# 在windows窗体应用程序中覆盖两个面板,c#,winforms,datagridview,overlay,C#,Winforms,Datagridview,Overlay,Windows窗体应用程序显示主窗体。此主窗体包含几个不同的面板控件。根据该形式中的某些条件,其中一个面板控件将处于活动状态,而其他面板控件将处于不可见状态 第一个面板包含DataGridview,第二个面板包含显示DataGridview详细信息的控件。在添加按钮上单击(或)在DataGridView中选择记录时,第二个面板应可见。我使用Visible属性来显示和隐藏面板,但间隙显示在那里,如屏幕截图所示 请建议最好的处理方法 您只需要面板共享同一位置即可。您可能不希望在设计时这样做,因为这

Windows窗体应用程序显示主窗体。此主窗体包含几个不同的面板控件。根据该形式中的某些条件,其中一个面板控件将处于活动状态,而其他面板控件将处于不可见状态

第一个面板包含DataGridview,第二个面板包含显示DataGridview详细信息的控件。在添加按钮上单击(或)在DataGridView中选择记录时,第二个面板应可见。我使用Visible属性来显示和隐藏面板,但间隙显示在那里,如屏幕截图所示

请建议最好的处理方法


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

在这种情况下,将底部面板的位置设置为与顶部面板的位置匹配

PanelDetails.Location = PanelDataGrid.Location;

现在,当您隐藏其中一个并显示另一个时,它们将显示在相同的位置。

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

在这种情况下,将底部面板的位置设置为与顶部面板的位置匹配

PanelDetails.Location = PanelDataGrid.Location;

现在,当您隐藏一个面板并显示另一个面板时,它们将显示在同一个位置。

最聪明的方法是在设计器中将面板分开。通过这种方式,可以更容易地对它们进行任何编辑,并且可以立即看到所有实际对象

在设计器中,将其他面板的“可见”属性设置为“假”,顶部第一个面板除外

表单加载

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

  • 将窗体的高度设置为与所需的高度相匹配,该高度适合您的最高面板

  • 使用按钮切换面板可见性(也可能切换窗体高度)


最聪明的方法是在设计师处将面板分开。通过这种方式,可以更容易地对它们进行任何编辑,并且可以立即看到所有实际对象

在设计器中,将其他面板的“可见”属性设置为“假”,顶部第一个面板除外

表单加载

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

  • 将窗体的高度设置为与所需的高度相匹配,该高度适合您的最高面板

  • 使用按钮切换面板可见性(也可能切换窗体高度)


效果很好,它们出现在同一个地方。但是窗户的大小和设计中的一样。我们可以根据活动面板大小设置窗口大小吗?还有其他选择吗?效果很好,它们出现在同一个地方。但是窗户的大小和设计中的一样。我们可以根据活动面板大小设置窗口大小吗?还有其他选择吗?