C#调整控件的Z顺序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C#调整控件的Z顺序
当窗⼝或者容器控件中的控件在布局过程中发⽣重叠的时候,会出现层次性。
Z顺序较⼤的控件会遮挡Z顺序较⼩的控件,放在顶层的控件会挡住放在底层的控件。
1、编辑⼀个这样的窗⼝(使⽤Label控件)
2、添加Label控件的绘制边框事件
3、分别添加三个绘制边框事件,并在事件中添加如下代码(中间使⽤到了pen⼯具,使⽤pen⼯具使⽤后要释放pen)
private void label1_paint(object sender, PaintEventArgs e)
{
//绘制边框
Label lb = sender as Label;//将sender中符合Label应⽤类型或者为null的类型之间进⾏转换(只执⾏引⽤转换)
Pen pen = new Pen(Color.Yellow, 10f);//实例化pen⼯具
e.Graphics.DrawRectangle(pen ,new Rectangle (0,0,lb.Width,lb.Height ));//绘制边框
pen.Dispose();//释放pen对象
}
private void label2_paint(object sender, PaintEventArgs e)
{
Label lb = sender as Label;//将sender中符合Label应⽤类型或者为null的类型之间进⾏转换(只执⾏引⽤转换)
Pen pen = new Pen(Color.Red, 10f);//实例化pen⼯具
e.Graphics.DrawRectangle(pen, new Rectangle(0, 0, lb.Width, lb.Height));//绘制边框
pen.Dispose();//释放pen对象
}
private void label3_paint(object sender, PaintEventArgs e)
{
Label lb = sender as Label;//将sender中符合Label应⽤类型或者为null的类型之间进⾏转换(只执⾏引⽤转换)
Pen pen = new Pen(Color.Blue , 10f);//实例化pen⼯具
e.Graphics.DrawRectangle(pen, new Rectangle(0, 0, lb.Width, lb.Height));//绘制边框
pen.Dispose();//释放pen对象
}
4、添加⿏标单击事件
5、添加如下代码(三个控件的公⽤⼀个⿏标单击事件)添加⼀下代码
private void OnlabelMouseClick(object sender, MouseEventArgs e)
{
Control c = sender as Control;
if (e.Button == System.Windows.Forms.MouseButtons.Left)//如果是单击⿏标左键
{
c.BringToFront();//增加z顺序
}
if (e.Button == System.Windows.Forms.MouseButtons.Right )//如果是单击⿏标右键
{
c.SendToBack();//增少z顺序
}
}
6、编译器⽣成代码(在Form1.Designer.cs)
注:在添加事件的时候可以⼿动通过代码添加也可以通过上⾯的⽅法添加事件。
通过上⾯两张图⽚我们可以看出来,通过⿏标的左单击改变了Top的这个Lebel框的叠放顺序。