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的背景变透明了。
来源:https://www.cnblogs.com/Return-blog/p/12288017.html