.net对接控件

| 我创建了一个CustomControl以显示信息标签,并且可以使用箭头按钮最小化/还原该标签: 它应该停靠在窗体的顶部。 然后通常以相同的形式有一个带有所有普通控件的中央面板,在这里它是黄色的showm,只是为了突出显示它。 最后,我有一个底部面板,其中包含表单上所有可用的命令/按钮。这停靠在底部。 问题是当折叠顶部面板时,我不知道如何设置中央面板以自动消耗可用空间。也就是说,没有“中心”对接样式。 如果我将中间面板停靠在顶部,那么当我折叠顶部面板时,我得到: 如果将中间面板锚定到所有边缘,则会得到: 如果我停靠中间面板以填充该区域,那么它将填充表单的所有客户区域,而不考虑其他面板的存在。 是的,我可以在顶部控件中创建一个事件,以通知谁对大小更改感兴趣,但这是一个丑陋的解决方案,因为它不是自动的:在每种形式下,我都必须听事件并相应地调整中间面板的大小。 有解决这个问题的优雅方法吗?     
已邀请:
        您确实想要“ 0”,但是如果中间控件位于顶部和底部停靠控件的“后面”,则需要重新排序控件。 Internall WinForms按添加到父项的顺序处理这些项。在VisualStudio设计器中,右键单击停靠在Fill的中间面板,然后选择\“ Bring to Front \”或\“ Move to Back \”。我忘记了哪一个是临时的,但是其中之一应该解决您的问题。     
        将DockStyle设置为Fill: 在其他两个之后添加此控件。为了确保它紧随其他两个之后,请先按CTRL-X,然后再按CTRL-V。     
        使用拆分容器将解决此问题。 拖动面板并将面板停放属性置于顶部(具有扩展器/折叠按钮)。 现在拖动一个拆分的容器,将原点更改为水平,然后更改停靠样式以填充。 现在,在splitcontainer顶部面板中,将您的自定义控件拖到底部拆分器面板中,然后将表单控件添加到底部。 当您想隐藏hide ur自定义控件时,请在顶部面板的按钮中单击,然后输入以下逻辑
private void btnExpandCollapseOptions_Click(object sender, EventArgs e)
    {
        if (splMainContainer.Panel1Collapsed)
        {
            splMainContainer.Panel1Collapsed = false;
            btnExpandCollapseOptions.Image = ImageResource.collapseMinus;
//changing image to collapse/expand from imageresource.resx file
        }
        else
        {
            splMainContainer.Panel1Collapsed = true;
            btnExpandCollapseOptions.Image = ImageResource.ExpandPuls;
        }

    }
自定义控件折叠时,底部控件将占据总空间     

要回复问题请先登录注册