C#如何加一个层使用户点击不了层下面的东西
发布网友
发布时间:2024-10-24 15:34
我来回答
共4个回答
热心网友
时间:2天前
这问题挺有意思!试了一下,可以这样实现
1)在 Windows窗体应用程序 项目中添加一个“自定义控件”
2)不用管CustomControl1设计器的界面,直接转到CustomControl1后台代码
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class CustomControl1 : Control
{
public CustomControl1()
{
InitializeComponent();
SetStyle(ControlStyles.SupportsTransparentBackColor |
ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint |
ControlStyles.Opaque, true);
}
#region 重写属性
protected override CreateParams CreateParams
{
get
{
var result = base.CreateParams;
result.ExStyle |= 0x00000020;
return result;
}
}
#endregion
#region 重写方法
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);
}
#endregion
}
}
3)打开Form1,随便布置几个控件
4)转到Form1的后台代码Form1.cs
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 增加一个透明的层,挡在所有控件的最前面
// 这样,无论鼠标怎么操作,都点不到后面的
// 控件!
CustomControl1 p = new CustomControl1();
this.Controls.Add(p);
p.Dock = DockStyle.Fill;
p.BringToFront();
}
}
}
5)运行
无论鼠标怎么点,就是点不到界面上的控件!:)))
热心网友
时间:2天前
设置一个透明图片放上层。
热心网友
时间:2天前
前端加个DIV绝对定位盖上去不就好了。。追答都是障眼法 都到了前段的话 都是由用户控制的 没有绝对的点不了
热心网友
时间:2天前
这是前端的事吧