想放置一个透明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. c# 判断字符串中是否含有汉字,数字

    正则表达式使用时需要引用 using System.Text.RegularExpressions; private void buttonX1_Click(object sender, EventA ...

  2. 在与SQLServer建立连接时出现与网络相关的或特定于实例的错误

    标题: 连接到服务器 ------------------------------ 无法连接到 (local). ------------------------------ 其他信息: 在与 SQL ...

  3. CSU 1786 莫队+KDTree

    题意 给出n个二维点(2e5) 和 q个询问(1e4) 每个询问给lr 问点l到r间有多少对点的曼哈顿距离<=d 点的坐标<=108 想出了莫队算法 复杂度n^1.5 看起来很科学 但是每 ...

  4. 区间dp的感悟

    学区间dp似乎也很久了...对区间dp的通用模型都了解了一些 但是做题还是很坑 上了一点难度的题基本想不出什么思路.. 目前的做题方式就是看题 想一会发现自己不会做 看题解 好巧妙啊 理解后写一发.. ...

  5. Nova中的系统状态分析

    系统状态 作者 孔令贤 Nova提供这么几个资源状态的查询. Service Nova中的service有两类,一类是所谓的control service,一类就是compute service.要想 ...

  6. Nagios的基本安装配置

    //////////////////////nagios//////////////////////nagios原理:http://www.linuxidc.com/Linux/2013-11/927 ...

  7. FilterDispatcher处理流程

    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 前身是:org.apache.struts2.dispatc ...

  8. Unity3D-UGUI图集打包与动态使用(TexturePacker)

    参考地址: http://blog.csdn.net/cjsen/article/details/52487706 今天做项目大佬看我在做图集,就跟我说可以用工具打包图集,也就是TexturePack ...

  9. git 上传项目到分支

    步骤 git init git add . git commit -m'代码描述' git remote add origin 远程仓库地址 git branch xxx # 创建新分支 git ch ...

  10. 深度学习—BN的理解(一)

    0.问题 机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障.那BatchNorm的作用是 ...