GDI+中控制绘图的问题(100分求助)

CsLover 2002-11-14 09:01:09
我用GDI+绘图时,用GreateGraphics()不能解决重画问题 可是重载OnPaint又不能让我控制每次Form_Lord好以后就开始画了
我想实现的是 我鼠标点击一下一个Button,画面(依照我预先的设计)就变化一下,好像做演示一样,请问哪位知道怎么解决?
...全文
69 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
chestnuts 2002-11-23
  • 打赏
  • 举报
回复
给分的时候,给出去的总分不要超过100分就可以了!
CsLover 2002-11-20
  • 打赏
  • 举报
回复
谁教我怎么能给分啊? 我给来给去都报错 我真的很想给分呀!! 555555
CsLover 2002-11-20
  • 打赏
  • 举报
回复
5drush,你说的重画似乎是将画面clear 以便画新的更确切的说 reset 不知道我对你的话的理解是否恰当
需要反面资料干嘛啦 我这可是正面教材
AlphaQ 2002-11-19
  • 打赏
  • 举报
回复
我也来一份 WangSP@nstek.com.cn
zanbuhui 2002-11-19
  • 打赏
  • 举报
回复
给我一份参考参考吧,我正需要着反面的资料。
先谢了,shizf@haijing-tj.com
5drush 2002-11-18
  • 打赏
  • 举报
回复
俺说得不对吗?呵呵,我觉得没问题呀,你说说我的方法为什么不行?
CsLover 2002-11-18
  • 打赏
  • 举报
回复
完了 我连怎么给分都不会 老说我“贴子回复次数大于跟给分次数” 谁教我啊?
CsLover 2002-11-18
  • 打赏
  • 举报
回复
我已经完成了我的Visual八皇后啦 不过我觉得我们的话题应该继续下去
5drush似乎误解“重画”的含义了
chestnuts 说得我都看到了(这本书我自己也买了),不过没有说明怎么实践
有些可惜 不过还是很感谢 Invalidate()的确管用 OnPaint的重载也是非常必要 两个加起来真是不错 我的八皇后就是画出来的 大家谁想参考一下重画方法的可以问我要 jefferine@163.com
分我就先给了 免得自己莫名地进入了别人的黑名单 ^_^
5drush 2002-11-18
  • 打赏
  • 举报
回复
你这样明确是明确了,不过不顶用,绘图的代码还是要写在OnPaint里面,人家在前面说不能写在OnPaint里面的撒。
所以最好的办法是:
还是按照你在按纽事件里面使用GreateGraphics()来画图,需要重画的时候就画一个背景色为你的窗体颜色的大矩形来覆盖以前画的
虽然简单,不过管用,给分吧,嘿嘿
chestnuts 2002-11-17
  • 打赏
  • 举报
回复
我回答具体而且明确,分要全给我哦!!
否则把你加入黑名单,呵呵~~~~
唯一的最佳的最好的解决方法就是用Invalidate()
下面的话摘自C#高级编程
invalidate()是System.Windows.Forms.Form的一个成员,以前没有介绍过这个方法。当需要重新绘制某些内容时,这个方法是非常有用的。实际上,它把客户窗口区域标记为无效,因此在需要重新绘制时,它可以确保引发Paint事件。Invalidate()有两个重载方法:可以给它传送一个矩形,指定(使用页面坐标)需要重新绘制哪个窗口区域,如果不提供任何参数,此时他把整个客户区域标记为无效。
为什么要这么做?如果知道需要绘制某些内容,为什么不调用OnPaint()或直接完成绘制任务的其他方法?有时,如果对屏幕的修改比较小,不太适合直接调用绘图例程,或者如果代码要完成某些绘图任务,此时一般应调用Invalidate().
有关于这个函数的源码,可以在www.wrox.com上下载,具体是第二十一章 使用GDI+绘图这一章的CapsEditor源码。
希望对你有用!
My Email:chestnuts@netease.com
tansm 2002-11-17
  • 打赏
  • 举报
回复
[Description("返回/设置顶部标题的说明文本")]
public string Info{
get{
return strInfo;}
set{
strInfo=value;
panTitle.Invalidate();}
}

UpDate()不是必需的。
这种方法可以重新绘制,但我现在也有问题,我使用
Graphics grp=e.Graphics;

grp.Clear(panTitle.BackColor);
不能清除原先的图形
CsLover 2002-11-16
  • 打赏
  • 举报
回复
tansm, 可以具体点吗? Invalidate()我也看到过 可是具体的用法不知道
还有 我看到的源码中Invalidate后面没有加Update()
Update()是必须的嘛?
tansm 2002-11-14
  • 打赏
  • 举报
回复
控件有个重绘的方法,当用户按下按钮就可以重绘。
Invalidate( );
Update( );
rbjojo 2002-11-14
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1174/1174741.xml?temp=.7122003
看看这个吧
我的类似问题也没有解决
也许对你有启发
CsLover 2002-11-14
  • 打赏
  • 举报
回复
这个问题很难吗?大家帮帮我

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧