在CSS中,我们有一个名为z-index的属性,Winfrom为Panel控件设置为"Z-Index"是什么?
Mus*_*sis 16
WinForms有一个z顺序,但你不能以数字形式访问它.相反,每个控件都有一个BringToFront方法和一个SendToBack方法,它们分别将控件移动到z顺序的顶部或底部.
虽然很少遇到BringToFront或SendToBack无法提供所需内容的情况,但不确定它为什么会以这种方式曝光.
更新: 我错了,您可以通过控件容器Controls集合上的方法直接访问z顺序.这是一个包装它的简单方法:
public void SetControlZOrder(Control ctrl, int z)
{
ctrl.Parent.Controls.SetChildIndex(ctrl, z);
}
Run Code Online (Sandbox Code Playgroud)
我猜它们封装了这个BringToFront,SendToBack只是为了让一切都简单易用.我鼓掌
更新2: 我在这里将你的评论解释为另一个答案意味着你希望能够获得一个面板内部并且比面板更大的控件(以便隐藏它的一部分)并使其成为控件在面板前面并且比它大(这样你就可以看到整个控件).
您可以通过从面板中删除控件,将其位置移动到原始面板的位置,然后将其添加到窗体的控件来执行此操作:
panel1.Controls.Remove(button1);
button1.Left += panel1.Left;
button1.Top += panel1.Top;
this.Controls.Add(button1);
Run Code Online (Sandbox Code Playgroud)
左侧和顶部位移是必要的,因为按钮的位置最初是相对于面板的,现在将相对于表单.移位将其保持在原始虚拟位置,因此它似乎从面板中移出.
然后你必须处理将它放回面板,这只是上面代码的反面.
| 归档时间: |
|
| 查看次数: |
14549 次 |
| 最近记录: |