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 (,,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(, , 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(, , 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框的叠放顺序。
C# 调整控件的Z顺序的更多相关文章
- MFC编程入门之十(对话框:设置对话框控件的Tab顺序)
前面几节为大家演示了加法计算器程序完整的编写过程,本节主要讲对话框上控件的Tab顺序如何调整. 上一讲为"计算"按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法运算.但 ...
- VS2010/MFC设置对话框控件的Tab顺序
设置对话框控件的Tab顺序 前面几节为大家演示了加法计算器程序完整的编写过程,本节主要讲对话框上控件的Tab顺序如何调整. 上一讲为“计算”按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法 ...
- VS2010/MFC编程入门之十(对话框:设置对话框控件的Tab顺序)
前面几节鸡啄米为大家演示了加法计算器程序完整的编写过程,本节主要讲对话框上控件的Tab顺序如何调整. 上一讲为“计算”按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法运算.但是还有个遗留的 ...
- delphi如何按照控件的左右顺序来遍历窗体中的每个控件 [问题点数:20 http://bbs.csdn.net/topics/380216822
delphi如何按照控件的左右顺序来遍历窗体中的每个控件delphi默认是按照控件添加进窗体的顺序来遍历的,有没有哪个属性能控制这个/?? 更多0分享到: 对我有用[0] 丢个板砖[0] 引用 | ...
- 在MFC中改变控件的TAB顺序
在MFC界面中,控件的TAB顺序如果乱了,不合理,可能会使界面出现意料之外的显示. 例如,在用Spin Control来对Edit Control内的值进行增减时,如果Edit Control.Spi ...
- Win2D 官方文章系列翻译 - 调整控件分辨率
本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-choosing-control-resolution/ 本文旨在讲解如何配置 Win2D XAML 控件使用 ...
- VS 对话框控件的Tab顺序问题
我们先来直观的看看各个控件的Tab顺序吧.打开“Resource View”视图,然后在资源中找到对话框IDD_ADDITION_DIALOG,双击ID后中间客户区域出现其模板视图.在主菜单中选择“F ...
- VS2010-MFC(对话框:设置对话框控件的Tab顺序)
转自:http://www.jizhuomi.com/software/158.html 上一讲为“计算”按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法运算.但是还有个遗留的小问题,就是 ...
- C# WinForm控件之Dock顺序调整
最近被.net winform中的控件布局搞困惑了,由于控件都是使用Dock方式的,操作起来也是比较方便,如果最大化,窗口大小调整等,都可以随着窗口大小的变化而变化. 但问题是,.net winfor ...
随机推荐
- HTTP协议与WEB框架简介
HTTP协议与WEB框架简介 一.HTTP协议 HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wid ...
- Python3学习之路~8.3 socket 服务端与客户端
通过8.2的实例1-6,我们可以总结出来,socket的服务端和客户端的一般建立步骤: 服务端 步骤:1创建实例,2绑定,3监听,4阻塞,5发送&接收数据,6关闭. #Author:Zheng ...
- 使用python脚本实现统计日志文件中的ip访问次数
使用python脚本实现统计日志文件中的ip访问次数,注意此脚本只适用ip在每行开头的日志文件,需要的朋友可以参考下 适用的日志格式: 106.45.185.214 - - [06/Aug/2014: ...
- 008-ThreadLocal原理分析
一.简介 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁地编写出优美的多线程程 ...
- open '/dev/hwlog_switch' fail -1, 13. Permission denied
https://blog.csdn.net/qq_36317441/article/details/79376522 将HBuilder开发的APP运行在华为手机上时,控制台显示 open '/dev ...
- C#编程基础
1..NET与C# A..NET 是 Microsoft XML Web services 平台.XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用 ...
- RabbitMQ -- unacked
RabbitMQ解决大量unacked问题 为了快速响应用户请求,我们需要消息异步处理机制,比较简单的做法是用redis的List结构,我们项目使用更专业的RabbitMQ.关于redis和Rabbi ...
- internal table operation
1: the basic operation *&---------------------------------------------------------------------* ...
- word2vec训练出来的相似词歧义
[问题]word2vec训练以后,得到预付卡和购物卡非常接近,可是实际上这两个东西是不一样的,如何区分这两个东西? 解决:建立一个独立词典,这个词典里的词是没有近义词的,独立的词,比如预付卡是很独特的 ...
- div+CSS实现页面的布局要点记录
1.页面任何控件可以通过div包装为一个模块,然后通过margin(外补丁)和padding(内补丁)对控件位置的摆放进行控制,以实现想要的效果. 2.position:absolute;对控件实现绝 ...