
protectedoverrideCreateParamsCreateParams
{
get
{
newSecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
CreateParamscp=base.CreateParams;
cp.ExStyle|=0x20;
returncp;
}
}
勉强的透明了一下classTransparentRichTextBox:RichTextBox
{
publicTransparentRichTextBox()
:base()
{
base.ScrollBars=RichTextBoxScrollBars.Vertical;
![]()
}//overrideprotectedCreateParamsCreateParams
//{
//get
//{
//CreateParamscp=base.CreateParams;
//cp.ExStyle|=0x20;
//returncp;
//}
//}
publicoverrideColorBackColor
{
get
{
returnParent==null?base.BackColor:Parent.BackColor;
}
set
{
base.BackColor=value;
}
}
}
我win.form背景是张网络
没有透明吧
不明白你的含义图片透明?
我是能够在winform上的richtextbox能表明背景的网络
也就是Richtextbox本身透明我三楼的源码已经实现了这个系统richtextbox 滚动,但在滚动文字时文字就模糊了
改成那样[DllImport("kernel32.dll",CharSet=CharSet.Auto)]
staticexternIntPtrLoadLibrary(stringlpFileName);protectedoverrideCreateParamsCreateParams
{
get
{
CreateParamsprams=base.CreateParams;
if(LoadLibrary("msftedit.dll")!=IntPtr.Zero)
{
prams.ExStyle|=0x020;//transparent
prams.ClassName="RICHEDIT50W";//这个一定要,但是不能改
}
returnprams;
}
}这个不会一滚动就怎么都看不到。
如果还有点小难题,就是当滚动条出现时,RichTextBox的边框会没有,所以把RichTextBox所在窗口和其他使用窗口切换一下就正常。
应该还需要你重绘一下边框。
文字清晰是,是因为在滚动的时候没有重绘吧,可以在滚动条的滚动事件里面加上更新画面的Richtextbox.Invalidate();试试
建议学会
使用win32api
你去瞧瞧这个
你去瞧瞧这个
hopewoo都怎么时候了richtextbox 滚动,你还炒房,有一层还不够,你还囤了三层
borderstype=borderstype.none不就没滚动条了
成年烂帖又出来了.
当然richtextbox里绘背景的话效率很低,尤其当多行需要有滚动条的时候,那种显示出来的根本不能看.比较好的方法是把richtextbox的背景设为透明,然后放到有背景的panel或者其它多少上边.新建个自定义控件,然后继承richtextbox.把上面的源码添加进来.只要让richtextbox变透明了C#code
[DllImport("kernel32.dll",CharSet=CharSet.Auto)]
staticexternIntPtrLoadLibrary(stringlpFileName);protectedoverrideCreateParamsCreateParams
{
get
{
CreateParamsprams=base.CreateParams;
if(LoadLibrary("msftedit.dll")!=IntPtr.Zero)
{
prams.ExStyle|=0x020;//transparent
prams.ClassName="RICHEDIT50W";
}
returnprams;}
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-119015-1.html
太夸张了