利用GDI+在窗体上绘制线条,移动窗体到边缘后线条被擦除一部分,这个的解释是?

问题描述

大概知道是因为窗体在移动过程中就在不断地进行重绘?然而重绘就会丢失线条,还有将线条划在窗体上pictruebox里的位图里就不会丢失,这是怎么回事?

解决方案

解决方案二:
WM_PAINT就是这样的工作机制
解决方案三:
pictruebox的OnPaint不是你写的
解决方案四:
你自己画的东西要放到OnPaint事件中,这样在重绘时才不会丢失,设置image后,picturebox在的onpaint中会自动DrawImage(this.image,rect);源码如下,看最后面那几句代码protectedoverridevoidOnPaint(PaintEventArgspe){if(this.pictureBoxState[0x20]){try{if(this.WaitOnLoad){this.Load();}else{this.LoadAsync();}}catch(Exceptionexception){if(ClientUtils.IsCriticalException(exception)){throw;}this.image=this.ErrorImage;}}if(this.image!=null){this.Animate();ImageAnimator.UpdateFrames();Rectanglerect=(this.imageInstallationType==ImageInstallationType.ErrorOrInitial)?this.ImageRectangleFromSizeMode(PictureBoxSizeMode.CenterImage):this.ImageRectangle;pe.Graphics.DrawImage(this.image,rect);}base.OnPaint(pe);}

解决方案五:
基本上就是你自己画线不一定都在系统重绘ui之后执行。放在onpaint里是一个办法,还有个简单办法把你画好的image作为backgroundimage赋值给窗体……那么系统就会把你画的内容作为窗体的一部分自动重绘了

时间: 2024-08-23 17:11:34

利用GDI+在窗体上绘制线条,移动窗体到边缘后线条被擦除一部分,这个的解释是?的相关文章

我从别的人把正常的工程拷贝一份为什么拿到我机器上,导入编译后配置文件都变了,求解释

问题描述 我从别的人把正常的工程拷贝一份为什么拿到我机器上,在eclipse导入.编译后配置文件都变了,求解释.难道我的eclipse配置有问题吗 解决方案 你本地的jdk和他机器上jdk的安装路径不一致吧,编译后这个配置信息肯定会变了呀,其它的变了估计是编码吧解决方案二:我在导入的时候web.xml是自动生成的,所以我将web.xml备份一个.解决方案三:1."编译后配置文件都变了"变成什么样子了啊?2.看一下JDK版本,编码解决方案四:变了,变成什么样子了,是不是编码的问题

利用excel vba编程在窗体上画椅子

  利用excel vba编程在窗体上画椅子           步骤 打开excel,进入Visual Basic编辑器. 插入模块. 模块编程.在模块1内编程,声明4个函数,并编写一句显示窗体的程序--"画". 插入窗体. 调整窗体大小.height属性调为399.75,width属性调为219.75. 窗体编程.双击窗体进入编程界面,编写窗体单击事件触发的程序,调用模块1里声明的1个结构.4个函数编写程序.为图中每个点写好坐标. 关闭vbe,启动宏. 执行宏. 执行宏--&quo

利用excel vba编程在窗体上画一个六边形

  利用excel vba编程在窗体上画一个六边形.这篇教程是向朋友们分享利用excel vba编程在窗体上画一个六边形方法,教程很不错,适合新手来学习,推荐大家来看看吧. 步骤1 打开excel表格,进入vbe窗口. 插入模块. 在模块1内编程,声明4个函数.1个结构,并编写一句显示窗体的程序--"画". 插入窗体. 这是插入的窗体,调整大小如图. 双击窗体进入编程界面,编写窗体单击事件触发的程序,调用模块1里声明的4个函数.1个结构编写程序. 关闭vbe窗口,在excel表格界面启

winfrom读取图片-C#,winfrom怎么利用 listview和imageview从数据库获取图片,显示在窗体上?

问题描述 C#,winfrom怎么利用 listview和imageview从数据库获取图片,显示在窗体上? 利用winfrom,listview和imageview实现从数据库读取图片 显示在界面上. 解决方案 建议您访问我的博客:http://blog.csdn.net/u014658115/article/details/47660987

如何在一张JPG图上绘制曲线,急

问题描述 我想实现这样的功能:我从网上截取了一张低图(11.JPG),上面标有地名,比如标有北京,石家庄.我想实现在这一张底图上通过编程用曲线把北京和石家庄两地连起来,请问各位怎么做啊 解决方案 解决方案二:以前做过,不过忘了应该是要先给这张图定个坐标系统,再利用GDI+绘图解决方案三:使用Image的FromFile加载这个JPG文件,然后使用Graphics.FromImage建立一个在其上绘制图的Graphics,使用其来绘制图形.如:using(Imageimg=Image.FromFi

利用javaScript实现点击输入框弹出窗体选择信息

 这篇文章主要是对利用javaScript实现点击输入框弹出窗体选择信息进的实例行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 在这里奉上源代码,没有做样式处理,不过功能是可以的,希望大家可以和我交流交流!   代码如下: <html>  <head>   <title>点击弹出DIV选择信息</title>      <meta http-equiv="keywords" content="keyword1

走近VB.Net(七)在窗体上画图

走近VB.Net(七)在窗体上画图 如果看过一些文章一定知道在窗体上画图要使用system.drawing类,在VB.Net中没有line与label控件,需要自已写一些代码, 首先写一个事件过程onpaint.在显示窗体的同时显示图形 Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) 'TODO: 请在此处添加绘图代码 End Sub ByVal e As PaintEventArgs是一个参数类,这个有些象在VB6在使用的自

excel vba编程在窗体上画一座房子

  excel vba编程在窗体上画一座房子.这篇教程是向大家介绍利用excel vba编程在窗体上画一座房子方法,教程比较基础,制作出来的效果非常不错,推荐来看看吧. 步骤 打开excel表格,进入vbe窗口. 插入模块. 在模块1内编程,声明4个函数.1个结构,并编写一句显示窗体的程序--"画". 插入窗体. 这是插入的窗体. 双击窗体进入编程界面,编写窗体单击事件触发的程序,调用模块1里声明的1个结构编写程序.这是房顶和房子的前面各4个点的坐标,房子的侧面5点的坐标. 这是门和窗

excel2013怎么在一张曲线图上绘制多条曲线?

  excel2013怎么在一张曲线图上绘制多条曲线?office软件每年的更新速度很快,虽然更新后的版本肯定能够实现更新前的功能,但是由于版式方面的改进,使得使用者初次使用时不是特别得心应手.下面重点讲述一下,如何利用excel2013在同一张图中做多条曲线的对比图,这个在科技论文写作中经常用到,希望作者的经验能够给后面的学习的人带来一定的帮助,有不妥之处还请指正. 1.采用的数据如下图所示,数据为作者自己通过matlab随意构造.两条曲线分别命名为"百度曲线A"和"百度曲