
这么做没必要啊 ,如果一定要的话,可以参考下面的代码: private void button1_Click(object sender, EventArgs e) { PaintEventArgs temp= new PaintEventArgs(label1CreateGraphics(), new Rectangle(0,0,label1Width,label1Height)); label1_Paint(sender, temp); } private void label1_Paint(object sender, PaintEventArgs e) { MessageBoxShow("a"); }
为了能够激活Paint事件,您必须对UserPaint的ControlStyle进行设置,这样才会激活TextBox的Paint事件,而不是由系统自己去完成相应的事件。如下所示: Public Class MyTextBox Inherits SystemWindowsFormsTextBox Public Sub New() SetStyle(ControlStylesUserPaint, True) End Sub Protected Overrides Sub OnPaint(ByVal e As SystemWindowsFormsPaintEventArgs) 'Your code here End Sub End Class 关于ControlStylesUserPaint以及ControlStyles其他属性的设置,请参考MSDN: >
不是说不能做到,只是做到了对你没好处。
如果把2禁用,那么你拿一个其他什么程序的窗口拖到你这个程序之上,然后再把它拖走,很有可能它刚刚盖住的地方就是一片白,真的。
你可以考虑对于每个小块,每次先绘制到内存中的一块缓冲区(Bitmap对象)里面,然后再把Bitmap刷到窗口上。如果没有特别需要,这个Bitmap就不需要更新,每次直接把Bitmap刷上窗口即可,比每次从头绘制应该要快不少
另:没记错的话paint事件里面可以获取“需要重新绘制的矩形”,你只管绘制这块矩形之内的就好,其他部分可以不用重新绘制
//Form1的Paint事件处理 函数
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = eGraphics;
//渐变色:起点(0, 0)从红色 --->终点(250, 250)蓝色
LinearGradientBrush brush = new LinearGradientBrush(
new Point(0, 0), new Point(250, 250),
ColorRed, ColorBlue);
Pen pen = new Pen(brush);
//画线
gDrawLine(pen, 50, 50, 300, 50);
penDispose();
brushDispose();
}
在Paint事件中,Paint的成员PaintEventArgs类有Graphics属性,e是PaintEventArgs类的对象。用对象e调用Graphics属性。你的DrawMe方法中没有输入参数PaintEventArgs e,应当用CreateGraphics方法创建图形对象:
Graphics g = thisCreateGraphics(); //窗体获取Graphics对象的引用
Graphics g = controlCreateGraphics(); //控件获取Graphics对象的引用
你这里大概是窗体,因此你的代码改为:
Graphics g = thisCreateGraphics();
gFillRectangle(blueBrush, x, y, width, height);
就可以了。
如果你想要在DrawMe中添加参数e为图形对象,DrawMe应当是某个事件(通常是Paint事件)的处理程序,要声明一个委托和事件,构造事件处理方法,这个事件处理方法是根据你的委托和事件名称,当你敲+=时系统提示你按Tap键,自动给你加上的,并且参数也是系统给你加上的,一般不自己做,在属性框选择合适的事件。
对控件的值进行修改后就会立即触发 OnPaint 事件。
所以当你在 label1 的 OnPaint 事件处理方法里修改了 label1 的属性(Text)后,由于 UI 界面发生了变化,因此导致界面重置并触发 OnPaint,然后就陷入死循环了 =-=
以上就是关于C#如何调用label的paint事件如题 谢谢了全部的内容,包括:C#如何调用label的paint事件如题 谢谢了、paint事件是怎么触发的啊谁知道快快帮个忙哈!求大神帮助、各位编程精英们帮我看个问题,winform datagridview控件但是Paint事件执行多次,如何阻止它有厚礼相送等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)