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天前

这是前端的事吧

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com