1.建一个WINFORM ,transparent随便设置个颜色 opacity也设置一个(比如80% ) 2.然后放个RICHTEXTBOX进去,RichTextBox里多写点字把滚动条显示出来 3.运行程序拖动RichTextBox滚动条时会死机
我的测试环境: XP SP2 P4的单核CPU 1.8GHZ 1.25G内存 .Net Framework 2.0 VS.NET2005 C# 请大家帮帮忙测试一下,我朋友测试的结果跟我一样。CPU占用率非常高 这个BUG应该怎么解决 ??
我的测试环境: XP SP2 P4的单核CPU 1.8GHZ 1.25G内存 .Net Framework 2.0 VS.NET2005 C# 请大家帮帮忙测试一下,我朋友测试的结果跟我一样。CPU占用率非常高 这个BUG应该怎么解决 ??
还好机器挺过来了
CPU占用率好高
textBox1.Multiline = true;
textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;这样设置之后TextBox效果跟RICHTEXTBOX一样。
重画的时候浮点运算有问题吧?
重画是哪个函数?
重写这个函数在前边加上this.Opacity=1.0;应该就可以了谁知道是哪个函数?
protected override void OnPaint(PaintEventArgs e)
{
//base.OnPaint(e);
}若是在重绘函数里把透明度设为1的话,那你开始的时候别设置透明度不就行了?
我试了一下
protected override void OnPaint(PaintEventArgs e)
{
MyForm.Opacity=1.0;
//base.OnPaint(e);
}
问题没有解决我的这个软件本来是一直半透明的,但是出了这个问题,
所以想在引发问题之前设置为不透明,在离开焦点以后再设置为半透明
但是不知道该怎么做
如果是在form的MouseEnter事件里设置不透明,如果鼠标移动快点会跳过这个事件;
如果是在RichTextBox的OnFocus事件里设置,如果鼠标从无焦点直接到滚动条又不会触发这个事件大虾有什么好办法吗?
我测试过,是可行的。你有继承FORM吗?或者你在窗体load之前的任何地方设置透明度等于1都可以的。
SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true);
这也许是个控件的BUG
建议楼主在鼠标进入拖动的时候把背景色transparent 取消