C# RichTextBox实现背景透明

女生的网名这么多〃 提交于 2020-02-09 18:59:31

C#RichTextBox实现背景透明

这几天在做一个文本编辑器,要将RichTextBox的背景透明,但是发现C#的RichTextBox是不支持将背景设置为Transparent(透明)。

网上找了好多方法,但都不行。
后来自己想了个办法,自己定义个类继承RichTextBox。

首先启动Visual Studio(我用的是Visual Studio 2008),打开项目,选择新建-类,将名字改为"RichTextBoxTM"。

打开类,将namespace里面的内容都清空,并加入以下代码:

class RichTextBoxTM : RichTextBox
    {
        [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
        private static extern IntPtr LoadLibrary(string lpFileName);
        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams prams = base.CreateParams;
                if (LoadLibrary("msftedit.dll") != IntPtr.Zero)
                {
                    prams.ExStyle |= 0x020;
                    prams.ClassName = "RICHEDIT50W";
                }
                return prams;
            }
        }
    }

保存类,并返回窗体设计界面,可以在工具栏中看到RichTextBoxTM,将他拖到窗体上。编译就可以看到RichTextBox的背景变透明了。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!