方法一:将事件放在form_Load中,在窗体中画图
 
   1:          protected void MainForm_Load(object sender,EventArgs e)
   2:          {
   3:              InitialPoint();        
   4:              Bitmap bm = new Bitmap(this.Width,this.Height);
   5:              Graphics grp = Graphics.FromImage(bm);
   6:              DrawCurves(grp,lpt);
   7:              pictureBox1.Image =bm;
   8:              //if use load event,then use bitmap,if not ,there is no need.
   9:   
  10:          }

方法二:利用picturebox画图,放在Load事件中。

   1:          protected void MainForm_Load(object sender,EventArgs e)
   2:          {
   3:              InitialPoint();        
   4:              Bitmap bm = new Bitmap(pictureBox1.Width,pictureBox1.Height);
   5:              pictureBox1.Image =bm;
   6:              using(Graphics grp =Graphics.FromImage(pictureBox1.Image))
   7:              {
   8:                  DrawCurves(grp,lpt);
   9:              }
  10:   
  11:          }

方法三:将事件放在Paint事件中,这个只能放在form中,因为grp本例和e无关,但是参数是:PaintEventArgs e

   1:          private void Form1_Paint(object sender, PaintEventArgs e)
   2:          {
   3:              //if in this method,there is no need to use bitmap
   4:              InitialPoint();    
   5:              Graphics grp =this.CreateGraphics();
   6:              DrawCurves(grp,lpt);        
   7:          }


方法四:paint事件,在picturebox上,按照下边这个例子,用e这个参数,不仅可以放在form的paint上,也可以放在picturebox的paint上

 
 

   1:          private void pic_paint(object sender,PaintEventArgs e)
   2:          {
   3:               Graphics g = e.Graphics;
   4:               DrawCurves(g,lpt);
   5:          }

   1:          private void DrawCurves(Graphics grp, List<Point> pointList)
   2:          {
   3:              Point[] temps = new Point[pointList.Count];
   4:              pointList.CopyTo(temps);
   5:              grp.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
   6:              grp.DrawCurve(new Pen(Color.Red, 2), temps);
   7:             // grp.Dispose();如果用Paint事件绘图,这个似乎不可以
   8:          }

注明:lpt是一个List<Point>

用Drawing画图如何不会消失的更多相关文章

  1. 英语进阶系列-A04-英语升级练习二

    古诗背诵 要求:背诵和朗读,然后翻译成现代文,并绘制图像描述图中的内容,同时看看某些内容可以用什么单词替换,时间限制到15 minutes. 速记词汇系列 要求:将词汇快速朗读并记忆,时间为8 min ...

  2. C# 在窗口绘制图形(打点、画圆、画线)

    需要包含命名空间 using System.Drawing; 画图前需要先创建画板 void Display() { Graphics g = this.CreateGraphics(); //创建画 ...

  3. Winform中设置ZedGraph鼠标焦点位置画出十字线并在鼠标移出时十字线消失

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  4. Android开发之画图的实现

    Android开发之画图的实现    四天前上完安卓的第一节课,真的是一脸懵逼,尽管熊哥说和java是差不多的,然而这个包和那个包之间的那些转换都是些什么鬼呀!!!但是四天的学习和操作下来,我觉得安卓 ...

  5. 对Raphael画图标的一个jquery简单封装

    公司要做一个项目的demo,要求地图上可以插红旗,所以就用到了Raphael. 因为是个demo,所以地图就用了一张图片,效果如下: 所以为了更好的封装一下这个功能,就写了一个简单的插件:jquery ...

  6. Algorithmic Graph Drawing in TikZ

    最近在写模板时需要画个图 ("图论"的"图"). 本来打算用Windows画图 (mspaint) 的, 但是效果不好, 还是决定用LaTeX的TikZ画. 这 ...

  7. Graphics 导出图片使用【这个主要是画图类图的使用,记录一下】

    /// <summary> /// 导出信令流程矢量图 /// </summary> /// <param name="signalFlowInfos" ...

  8. c#代码画图

    说明:此示例代码在我做的一个项目中  不过还是可以学习一下 一:直角坐标系显示数据 先看效果图:

  9. IOS 作业项目(4)步步完成 画图 程序(中续)

    一,程序布局整理 前言://1,程序启动//2,程序流程框架//3,程序界面一致//4,程序界面功能, //这里只做页面的固定功能, //在首次创建界面时,我们会指定好固定事件触发前的固定方法 //至 ...

随机推荐

  1. webstorm 主题设置 皮肤设置

    推荐个编辑器主题下载的一个网站. Color Themes    网址:http://color-themes.com [点这里直接跳转] 但是,只支持几个编辑器. 各种颜色搭配的主题,随你选择!我个 ...

  2. C#实现XML文件数据库存储

    C#实现文件数据库 http://www.cnblogs.com/gaochundong/archive/2013/04/24/csharp_file_database.html#3100076 应用 ...

  3. JavaScript闭包——实现

    闭包的官方的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 通俗点的说法是: 从理论角度:所有的函数.因为它们都在创建的时候就将上层上下文 ...

  4. 【JavaScript】JavaScript中的Timer是怎么工作的( setTimeout,setInterval)

    原文(http://www.yeeyan.org/articles/view/luosheng/24380) 作为入门者来说,了解JavaScript中timer的工作方式是很重要的.通常它们的表现行 ...

  5. 如何在 iOS 8 中使用 Swift 实现本地通知(下)

    在上集中,我们已经构建了一个简单的待办列表应用(to-do list app),这个应用可以在待办项过期时通过本地通知提醒用户.现在,我们要在之前的基础上添加以下功能:应用图标角标上显示过期待办项的数 ...

  6. mongodb的分布式集群(4、分片和副本集的结合)

    概述 前面3篇博客讲了mongodb的分布式和集群,当中第一种的主从复制我们差点儿不用,没有什么意义,剩下的两种,我们不论单独的使用哪一个.都会出现对应的问题.比較好的一种解决方式就是.分片和副本集的 ...

  7. Unity3d截图保存到Android相册的实现

    Unity3d截图保存到Android相册的实现-----------------------------ultrasoon 季风原创--------------------------------- ...

  8. javascript实现单例模式

    1.简单实现单例模式: var singleTon = function(){ var _pria = 'private value'; var show_pria = function(){ con ...

  9. MySQL Order By实现原理分析和Filesort优化

    http://blog.csdn.net/hguisu/article/category/796963

  10. [设计模式2]--模板(Template)模式

    原文出处:http://blog.csdn.net/lwbeyond/article/details/7517679 一. 问题 在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务 ...