c# winform重绘问题

SIWWC 2017-11-25 03:16:11
c# winform最小化恢复后就变这样了,那些黑块都是按钮、文本框等基本控件,麻烦大家指点一下啊
...全文
467 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
OLD_PINK_DOG 2019-08-16
  • 打赏
  • 举报
回复
我想问一下,重绘是简化了内存占用还是只是可以添加额外功能,反而增大了内存占用?
一个采集 2019-05-08
  • 打赏
  • 举报
回复
感觉重绘好事挺难得,理解不了。
SIWWC 2017-12-20
  • 打赏
  • 举报
回复
找到问题了 这是我写的pictureBox重绘代码 private void pictureBox1_Paint(object sender, PaintEventArgs e) { //绘图代码 ........... pictureBox1.Image=img //就是这句代码,陷入了重绘死循环了,根本顾不到Panel2,难怪Panel2无效了都没有重绘 } PS:原来这就是我一运行程序电脑风扇就转起来的原因(捂脸) 谢谢大家了
  • 打赏
  • 举报
回复
引用 2 楼 SIWWC 的回复:
左边那个面板是pictureBox,我又发现在我没有打开图片的时候它又能正常重绘,还有打开了图片之后savefileDialog也出问题了,当保存路径的文件名已存在时,一点保存就卡死了,这到底是怎么回事啊,代码逻辑问题我还能改,但这种莫名的问题我是真的感到无力了
用 pictureBox 打开图片那么就老老实实地打开图片。但是往往根本不是这个问题,而是自己做了比“打开图片”更多的事情,比如说重写了Control(包括Form)的代码去画什么东西,没有调用 base 的代码。尽量不要去在 Paint 中写代码,尽量用高层次的图形开发系统,而不要手写底层代码。
  • 打赏
  • 举报
回复
引用 1 楼 SIWWC 的回复:
刚刚又仔细看了下程序,这两个面板是splitContainer,于是试着我重写了它的Paint方法,加了一句splitContainer.Panel2.Update(),最小化恢复后就可以正常重绘了,说明第二个面板的区域在恢复后其实已经是无效了的,但就是不知道它为什么没有重绘,大家说下自己的想法
看看成熟的控件以外的、你自己的那些代码中有没有什么“重绘”代码吧。这往往是你自己的盲目地重绘的代码,把进程的卡死了。
lescper2011 2017-11-26
  • 打赏
  • 举报
回复
加一个Invalidate()方法。
xuzuning 2017-11-25
  • 打赏
  • 举报
回复
贴出你的代码,实际测试一下
SIWWC 2017-11-25
  • 打赏
  • 举报
回复
SIWWC 2017-11-25
  • 打赏
  • 举报
回复
左边那个面板是pictureBox,我又发现在我没有打开图片的时候它又能正常重绘,还有打开了图片之后savefileDialog也出问题了,当保存路径的文件名已存在时,一点保存就卡死了,这到底是怎么回事啊,代码逻辑问题我还能改,但这种莫名的问题我是真的感到无力了
SIWWC 2017-11-25
  • 打赏
  • 举报
回复
刚刚又仔细看了下程序,这两个面板是splitContainer,于是试着我重写了它的Paint方法,加了一句splitContainer.Panel2.Update(),最小化恢复后就可以正常重绘了,说明第二个面板的区域在恢复后其实已经是无效了的,但就是不知道它为什么没有重绘,大家说下自己的想法

111,096

社区成员

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

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

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