请问Invalidate方法--重绘

问题描述

publicForm1(){InitializeComponent();}Pointpoint1=newPoint(20,20);privatevoidForm1_Load(objectsender,EventArgse){}privatevoidForm1_Paint(objectsender,PaintEventArgse){Graphicsg=this.CreateGraphics();Rectanglerectangle=newRectangle(point1,newSize(30,30));Penpen1=newPen(Color.Red);g.DrawEllipse(pen1,rectangle);}privatevoidbutton1_Click(objectsender,EventArgse){point1=newPoint(20,40);Invalidate();//调用Invalidate方法,实现重绘}上面是一个简单的调用Invalidate方法实现重绘的代码,我想问:上面例子是form1_paint事件,如果想实现panel1_Paint事件,该怎么做呢?如果Form1中有多个paint事件,Invalidate是调用的哪个paint事件呢?

解决方案

解决方案二:
如果Form1中有多个paint事件,Invalidate是调用的哪个paint事件呢?打开form.design.cs文件里面有类似this.Paint+=newEventHandler(Form1_Paint);这样的代码。调用的就是这个里面指定的方法。至于如何编写Panel的Paint,原理是一样的。
解决方案三:
我是说,比如:publicForm1(){InitializeComponent();}privatevoidpanel1_Paint(objectsender,PaintEventArgse){}privatevoidbutton9_Click(objectsender,EventArgse){......Invalidate();//这里怎么不能调用panel1_Paint事件呢?}如何调用panel1_Paint事件
解决方案四:
等待答案啊
解决方案五:
panel1.Invalidate()
解决方案六:
引用2楼sdfsdf43的回复:

我是说,比如:publicForm1(){InitializeComponent();}privatevoidpanel1_Paint(objectsender,PaintEventArgse){}privatevoidbutton9_Click(objectsender,EventArgse){......……

这里调用的是this.Invalidate();也就是form的Invalidate
解决方案七:
引用2楼sdfsdf43的回复:

我是说,比如:publicForm1(){InitializeComponent();}privatevoidpanel1_Paint(objectsender,PaintEventArgse){}privatevoidbutton9_Click(objectsender,EventArgse)……

这里调用的是当前窗体的Invalidate。就是this.Invalidate想调用panel的试试panel1.Invalidate()
解决方案八:
谁的Paint,就谁的Invalidate,panel1.Invalidate

时间: 2024-11-01 01:15:10

请问Invalidate方法--重绘的相关文章

用SetStyle方法重绘你的窗体

鲜为人知的SetStyle方法可以让你控制重绘一个窗体的方式. by Ken Getz 注:Ken Getz在Orlando的VSLive!上同Brian Randell一起举办了一个主题为"Build a Rich Client App with Visual Studio .NET"的研讨会.本篇技巧选自该研讨会的资料.运用GDI+和Windows窗体,我们可以很容易地创建一个渐变色(gradient)来填充一个区域.运用.NET Framework提供的简单的方法,你可以创建li

java ondraw重绘有哪些方法可以使用

问题描述 java ondraw重绘有哪些方法可以使用 安卓开发中要用到ondraw重绘机制,不知道有哪些方法可以用,最好举个例子,谢谢~ 解决方案 invalidate和postinvalidate,当然,也可以通过发消息实现重绘界面咯

自定义jQuery插件方式实现强制对象重绘的方法

 这篇文章主要介绍了自定义jQuery插件方式实现强制对象重绘的方法,实例分析了jQuery插件及对象重绘的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了自定义jQuery插件方式实现强制对象重绘的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 jQuery.fn.redraw = function(){ jQuery(this).each(function(){ this.style.display='none'; this.off

java树的节点事件里调用repaint方法 不能实现重绘

问题描述 java树的节点事件里调用repaint方法 不能实现重绘 java树的节点事件里调用repaint方法 不能实现重绘 怎么解决......................... 解决方案 http://zhidao.baidu.com/link?url=_s3y58ND8LIk-TtWOqBE2sXSaX5vKISRuxgRbdlCvZ2TPcjjujnp85-84Xto3Pa3rh7GEZ8yJ5ctIOYQxF7wTq

自定义jQuery插件方式实现强制对象重绘的方法_jquery

本文实例讲述了自定义jQuery插件方式实现强制对象重绘的方法.分享给大家供大家参考.具体实现方法如下: jQuery.fn.redraw = function(){ jQuery(this).each(function(){ this.style.display='none'; this.offsetHeight; // no need to store this anywhere, the reference is enough this.style.display='block'; });

c#窗体-C#请问窗口重绘后内容不消失怎么办到的啊~~~~~~~~

问题描述 C#请问窗口重绘后内容不消失怎么办到的啊~~~~~~~~ private void pictureBox1_Paint(object sender, PaintEventArgs e) { Graphics g = Graphics.FromImage(myBitmap); g.DrawLine(myPen, pStart, pEnd); e.Graphics.DrawImage(myBitmap, 0, 0); .... } 怎么补充完这个代码中的内容啊~使C#大小化后不重绘.

绘制直线的重绘问题

问题描述 我在做一个简单的画板,做到了绘制知道的地方,但是再画第二次直线的时候就会把前面的一条直线给擦掉,请问谁有关于直线重绘的代码,帮忙给我介绍一下呀,急需! 解决方案 解决方案二:你没说你用什么方法绘制的,如果可以,请贴出关键代码解决方案三:privatevoidpictureBox1_MouseMove(objectsender,System.Windows.Forms.MouseEventArgse){if(drawing){Graphicsg=this.pictureBox1.Crea

动画窗口重绘-MFC动画窗口的重绘 窗口重绘

问题描述 MFC动画窗口的重绘 窗口重绘 10C 动画窗口重绘 在窗口的显示过程中有动画效果 但是这个窗口是无边框 又贴了一些控件的窗口 请问此窗口如何重绘??? 解决方案 在刷新窗口时经常要调用重绘函数MFC提供了三个函数用于窗口重绘InvalidateRect(&Rect)Invalidate()UpdateWindow()当需要更新或者重绘窗口时,一般系统会发出两个消息WM_PAINT(通知客户区有变化)和WM_NCPAINT(通知非客户区有变化)–WM_NVPAINT系统会自己搞定–WM

Android学习Scroller(五)——详解Scroller调用过程以及View的重绘

PS: 该篇博客已经deprecated,不再维护,详情请参见  站在源码的肩膀上全解Scroller工作机制  http://blog.csdn.net/lfdfhl/article/details/53143114 MainActivity如下: package cc.ww; import android.os.Bundle; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import