把绘制代码写在OnPaint()事件下
解决方案 »
- 请教一个ASP.NET的事件问题
- 正则小问题
- 请教——同时update 两个表出错
- MDI窗体如何打开一个窗体不最大化
- ajax js问题,一个页面里面有2个pageload() 事件,怎么会有一个不执行,(只会执行后面的pageload())
- 用PowerDesigner如何导出数据库文档?
- WinForm的Datagridview如何禁止DataGridViewButtonColumn列排序
- C#中相当于C++当中map<>的功能的容器是什么?
- csdn没了 怎么办
- 初学者关于线程的疑问
- 请问:C#如何把WORD文件另存为HTML文件?
- 怎样用C#编写OCX控件和调用用C#编写的OCX?(在线等,立即给分)
1.如果直接用PictureBox的Graphics对象绘制,那么PictureBox就不会自动保持绘制的结果,也就是说一旦被其他遮挡后,再显示的时候内容被清空。
2.如果内容不是很大,可以考虑使用PictureBox.Image属性,设置后,PictureBox的内容就可以自己保持状态。比如你可以把你在Graphics中绘制的内容保存在Bitmap对象里,然后赋值给PictureBox.Image
3.难点:如果内容很多,比如是很大,很复杂的图片,不可能保存下来赋值给Image属性。这时应该先把原先可见的只是位置有变化的内容用(BitBlt之类的api)快速移动到新位置,然后再补绘上原先内容上没有的。win32 api下已经实现了的。