想放置一个透明Panel在某控件上端,实现效果是可透过此Panel看见下面控件,但鼠标点击却无任何反应。

1、新建置自定义Panel类

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Drawing;

namespace NavDataManager

{

public class MyTransparentPanel : Panel

{

public MyTransparentPanel()

{

this.SetStyle(ControlStyles.SupportsTransparentBackColor | ControlStyles.Opaque, true);

this.BackColor = Color.Transparent;

}

protected override CreateParams CreateParams

{

get

{

CreateParams cp = base.CreateParams;

cp.ExStyle = 0x20;

return cp;

}

}

}

}

2、窗体中添加此自定义Panel控件

MyTransparentPanel pan = new MyTransparentPanel();

pan.Size = uC_EditLeg1.Size;

pan.Location = new Point(uC_EditLeg1.Left, uC_EditLeg1.Top);

this.Controls.Add(pan);

此时并没有效果,因为此Panel是置于控件底层的,没有覆盖别的控件

3、将此控件置于顶层,遮挡其它控件

最简单的方法:mypan.BringToFront();  //前提是先执行this.Controls.Add(pan);

此外还可以用 this.Controls.SetChildIndex(mypan,0);//索引越小,控件位置越靠上。

还有一种笨办法

int index = this.Controls.GetChildIndex((Control)pan);//取得要置顶控件的index

ArrayList AL = new ArrayList();//用来装入控件的容器

for (int i = 0; i < index; i++)//把要置顶控件上面的控件都装入容器

AL.Add(this.Controls[i]);

for (int i = 0; i < AL.Count; i++)

{

//用一次删除和一次添加操作,让它上面的控件排到下面去.

this.Controls.Remove((Control)AL[i]);

this.Controls.Add((Control)AL[i]);

}

此时这些控件全到panel下面去了,鼠标不管用了。哈哈

2016.5.30实现透明Panel及控件置顶的方法的更多相关文章

  1. 方法控件[置顶] Asp.net总结(一)

    本文朋友在青岛逛街的时候突然想到的...这两天就有想写几篇关于方法控件的博客,所以回家到之后就奋笔疾书的写出来发表了 纵观 Asp.net的学习只会之路,可以发现 Asp.net可以分为以下几大块 控 ...

  2. C#常用控件的属性以及方法(转载)

    -----以前看别人的,保存了下来,但是忘了源处,望见谅. C#常用控件属性及方法介绍 目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox(文本框)控件 4.RichText ...

  3. C#基础视频教程3.1 常见控件类型和使用方法

    可以从左侧的工具箱中找到常见的控件(你要在Form1这种窗体上)   为了方便你也可以把工具箱整个拖过去,这样从上到下控件都给你排好了   对于按钮来说,最常见的就是他的背景颜色,文字,字体,还有是否 ...

  4. [转] WinForm实现移除控件某个事件的方法

    原文 WinForm实现移除控件某个事件的方法 本文实例讲述了WinForm实现移除控件某个事件的方法,供大家参考借鉴一下.具体功能代码如下: 主要功能部分代码如下: /// <summary& ...

  5. MFC控件编程之 按钮编辑框.静态文本的使用,以及访问控件的七种方法.

    MFC控件编程之 按钮编辑框.静态文本的使用以及访问控件的七种方法. 一丶按钮.静态文本的通用属性. 他们都有一个属性.就是可以输入标题内容.以及可以自定义控件ID. 创建一个MFC Dlg对话框. ...

  6. WPF编程,通过Double Animation动态旋转控件的一种方法。

    原文:WPF编程,通过Double Animation动态旋转控件的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/art ...

  7. WPF编程,通过Double Animation同时动态缩放和旋转控件的一种方法。

    原文:WPF编程,通过Double Animation同时动态缩放和旋转控件的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_4330793 ...

  8. WPF编程,通过Double Animation动态缩放控件的一种方法。

    原文:WPF编程,通过Double Animation动态缩放控件的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/art ...

  9. VS编程,编辑WPF过程中,点击设计器中界面某一控件,在XAML中高亮突出显示相应的控件代码的设置方法。

    原文:VS编程,编辑WPF过程中,点击设计器中界面某一控件,在XAML中高亮突出显示相应的控件代码的设置方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net ...

随机推荐

  1. R语言笔记003——set.seed()函数

    set.seed()函数 set.seed()设定生成随机数的种子,让样本可重复. > x<-rnorm() # 生成4个随机数 > x [] 0.6599492 0.5881863 ...

  2. HDFS存档

    Hadoop存档 每个文件均按块方式存储,每个块的元数据存储在namenode的内存中,因此Hadoop存储小文件会非常低效.因为大量的小文件会耗尽namenode中的大部分内存.存储小文件所需的磁盘 ...

  3. review02

    位运算符 按为与运算符和按位或运算符都是二目运算符 按位非运算符是单目运算符 按位异或运算符的法则有: a^a=0; a^0=a; a^b^b=a; instanceof是二目运算符,左边的操作是一个 ...

  4. HTML5 JS实现搜索匹配功能

    http://www.codefans.net/jscss/code/4830.shtml <!DOCTYPE html><head><title>jQuery实现 ...

  5. 搜索6--noi1700:八皇后问题

    搜索6--noi1700:八皇后问题 一.心得 二.题目 1756:八皇后 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 会下国际象棋的人都很清楚:皇后可以 ...

  6. hdu 5236 Article(概率dp¥)

    Article Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  7. Docker 资料

    一.Docker 入门介绍 http://dockone.io/article/111 二.ASP.NET Core + Docker http://www.cnblogs.com/keepcodin ...

  8. Ceph pg分裂流程及可行性分析

    转自:https://www.ustack.com/blog/ceph-pg-fenlie/ 1 pg分裂 Ceph作为一个scalable的分布式系统,集群规模会逐渐增大,为了保证数据分布的均匀性, ...

  9. 经典SQL语句(转载)

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  10. hdu-3068-最长回文(manacher算法模板)

    题目链接 /* Name:hdu-3068-最长回文 Copyright: Author: Date: 2018/4/24 16:12:45 Description: manacher算法模板 */ ...