在系统自带的RichTextBox中是无法给它设置背景图片,但是我们在某些场合可能需要给RichTextBox设置背景图片。那么怎么实现这一想法呢?经过研究发现通过其它巧妙的途径可以给RichTextBox设置背景图片。首先将RichTextBox这个控件加以改写。具体改写的代码如下:
publicpartialclassrichTextBoxEx : RichTextBox
{
publicrichTextBoxEx()
{
InitializeComponent();
base.ScrollBars = RichTextBoxScrollBars.None;
}
publicrichTextBoxEx(IContainer container)
{
container.
Add(
this);
InitializeComponent();
}
//这个要加上
protectedoverrideCreateParams CreateParams
{
get
{
CreateParams cp =
base.CreateParams;
cp.ExStyle|=
0x20;
returncp;
}
}
}
CreateParams 中的信息可用于传递有关控件的初始状态和外观的信息。多数
Control 派生控件重写
CreateParams 属性以传递适当的值或在 CreateParams 中包含附加信息。
关于CreateParams的详细介绍请查看MSDN:
http://msdn.microsoft.com/zh-cn/library/b0c6ds4f%28v=VS.85%29.aspx。
改写完毕后首先放置一个Panel到窗体上面,同时放置一个和Panel相同大小的richTextBoxEx到Panel上,将需要给richTextBox设置的背景图片设置给panel,将panel的背景色设置为透明即可。但是这样虽然给richTextBox设置了背景,但是在显示时会有比较明显的闪动。因此需要对Panel控件加以改良,改写的代码如下:
publicclassPanelEx:Panel
{
publicPanelEx()
{
}
protectedoverridevoidOnPaintBackground(PaintEventArgs e)
{
return;
}
protectedoverridevoidOnPaint(PaintEventArgs e)
{
this.DoubleBuffered =
true;
if(
this.BackgroundImage!=
null)
{
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
e.Graphics.
DrawImage(
this.BackgroundImage,
newSystem.Drawing.
Rectangle(
0,
0,
this.Width,
this.Height),
0,
0,
this.BackgroundImage.Width,
this.BackgroundImage.Height,
System.Drawing.GraphicsUnit.Pixel);
}
//base.OnPaint(e);}
}
使用这个panelEx虽然没有能彻底的消除闪烁的效果,但是已经好很多了,没有刚才那么明显了。本人能力有限,只能做到这一步了,
如果那位大侠有更好的解决方案,请赐教。
分享到:
相关推荐
如何最简单在C#中,richTextBox,控件,中放入图片 如何最简单在C#中,richTextBox,控件,中放入图片 如何最简单在C#中,richTextBox,控件,中放入图片 如何最简单在C#中,richTextBox,控件,中放入图片 如何最...
在网上看到关于如何操作richTextBox行代码,但是却看不到如何对某行文本进行独立操作的,比如设置背景颜色之类的,于是分享下自己的思路
C# 在richtextbox中生成表格 ,在richtextbox中画表格,共享给大家,不错的东东
RichTextBox 练习,保存和读取图片数据库 QQ:292258449
本实子实现了RichTextBox的背景图片显示功能。
C# 源码 扩展 RichTextBox 控件 加加入图片 文档 控件
C# RichTextbox设置行间距
NET,C#在RichTextBox控件加入图片(类似QQ)教程
C#代码:向RichTextBox中添加图片
本程序主要有以下功能: 1.在Richtextbox的旁边没有误差的显示动态行号。 2.可以使Richtextbox的滚动条跳到指定的行号处。...可以单击Richtextbox中的某行,然后通过鼠标事件获取鼠标所在的Richtextbox中的行的数据。
利用C#及RichTextBox简单实现Word域功能
C#161演示将图片和文字混合显示在RichTextBox控件中 源代码
详细讲解C#中richtextbox的使用方法!
c# richtextbox 实现动态gif显示
c#记事c#记事本,richtextbox控件,实现与Windows记事本同样功能,学习之用。本,richtextbox控件,实现与Windows记事本同样功能,学习之用。
C# 文本文件与RichTextBoxC# 文本文件与RichTextBoxC# 文本文件与RichTextBoxC# 文本文件与RichTextBoxC# 文本文件与RichTextBox
C#中RichTextBox使用方法和TextBox基本一样,只不过RichText除了TXT外,还支持RTF格式的文档。本文详细介绍RichTextBox的使用方法供大家参考,具体如下: 一、RichTextBox的使用方法 RichTextBox.Find方法 ...
C# ,RichTextBox,使用方法 C# ,RichTextBox,使用方法 C# ,RichTextBox,使用方法 C# ,RichTextBox,使用方法 C# ,RichTextBox,使用方法 C# ,RichTextBox,使用方法 C# ,RichTextBox,使用方法
C#实现richTextBox显示、保存和另存为带格式的Word文档
C#WinForm Ri用chTextBox做的 文本编辑器带有左中右等功能