Winforms:啥决定了停靠是不是移动其他控件
Posted
技术标签:
【中文标题】Winforms:啥决定了停靠是不是移动其他控件【英文标题】:Winforms: What Determines if Docking Moves Other ControlsWinforms:什么决定了停靠是否移动其他控件 【发布时间】:2014-02-18 15:33:18 【问题描述】:例如,在 TabPage 中,我有一个停靠在“填充”的 DataGridView。如果我将 UserControl 的停靠属性设置为“右”位置,则 DataGridView 会按预期向左移动。如果我用面板或标签(也停靠在 TabPage 内的“右”)替换 UserControl,则 DataGridView 不会腾出空间。 Panel 或 Label 只是覆盖 DataGridView。我尝试了***并做了一些阅读,但没有看到任何规则(还)。谢谢。
【问题讨论】:
【参考方案1】:他们的 Z 顺序。您可以使用“置前”和“移到后”上下文菜单项对其进行操作,右键单击控件以查看菜单。
当您使用 View + (Other Windows) + Document Outline 窗口时会更加清晰,它会在容器下方按 Z 顺序列出它们。并允许您拖放控件以更改其顺序,您可以立即在设计器中看到效果。
【讨论】:
对于在运行时添加的控件,它们的 z 顺序是Controls
集合中的索引,对吗?从底部(第一次添加)到顶部(最后添加)?
是的。索引 0 是 Z 顺序的顶部。 Controls.Add() 在末尾追加,将控件放在 Z 顺序的底部。 Controls.SetChildIndex() 来改变它。
这与我的猜测完全相反。谢谢。以上是关于Winforms:啥决定了停靠是不是移动其他控件的主要内容,如果未能解决你的问题,请参考以下文章
使用自定义 WinForms 控件,我可以更改嵌套控件停靠在里面的矩形吗?