我正在使用c#拖放面板。面板不断出现和消失。我还需要帮助处理面板盒功能,如“带到前面并带回来”,我认为这就是弄乱我的面板。他们的意思是?
答案 0 :(得分:7)
Windows窗体设计器有一个名为Z-order
的概念。当两个控件重叠时,Z顺序确定哪个控件将显示在顶部。
例如,假设您在Windows窗体上有两个名为textBox1
和pictureBox1
的控件。以编程方式,this
指的是Windows窗体本身,Controls
是该窗体中控件的默认列表,textBox1
是我们正在更改的实际控件。
选择菜单选项Bring to Front
等同于调用控件的BringToFront()
方法。这会将控件移动到Windows窗体的默认控件集合的开头。因此,如果您在Bring To Front
上致电textBox1
,它将显示在您的表单上的所有其他控件之上。编程,
// Bring the control in front of all other controls
this.textBox1.BringToFront();
选择菜单选项Send to Back
等同于调用控件的SendToBack()
方法。这会将控件移动到Windows窗体的默认Controls集合的末尾。因此,如果您在Send To Back
上致电textBox1
,它将显示在您表单上所有其他控件的后面。编程,
// Send the control behind all other controls
this.textBox1.SendToBack();
您还可以通过编程方式更好地控制订购。在UI中无法做到这一点。所以:
// Put the control at the 2nd index in the Controls collection of this Form
this.Controls.SetChildIndex(this.textBox1, 2);
此页面Layering Objects on Windows Forms提供了更多详细信息。
页面Windows Forms Controls: Z-order and Copying Collections包含有关如何以编程方式控制Z顺序的示例。