方法一:将事件放在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. Eclipse调试Java的10个技巧

    原文地址: http://www.oschina.net/question/82993_69439 在看这篇文章前,我推荐你看一下Eclipse 快捷键手册,我的eclipse版本是4.2 Juno. ...

  2. System.Data.SQLite数据库简介

    SQLite介绍 在介绍System.Data.SQLite之前需要介绍一下SQLite,SQLite是一个类似于Access的单机版数据库管理系统,它将所有数据库的定义(包括定义.表.索引和数据本身 ...

  3. Delphi thread exception mechanism

    http://www.techques.com/question/1-3627743/Delphi-thread-exception-mechanism i have a dilema on how ...

  4. PostgreSQL没有redo log multiplexing

    与Oracle不同的是,PostgreSQL中压根没有这种的东西. 若以,如果因为写在线WAL文件是发生磁盘I/O错误,那么数据库系统就启动不了了. 解决的办法,我想,在PostgreSQL中,如论如 ...

  5. Android图片适配,drawable文件夹,低分辨率图片是否必要

    我们知道,Android提供了几种不同分辨率的bitmap,来对应不同手机屏幕的密度.对应关系如下: xxhdpi:3.0 xhdpi: 2.0 hdpi: 1.5 mdpi: 1.0 ldpi: 0 ...

  6. 如何在XAF中显示自定义窗体和控件

    https://www.devexpress.com/Support/Center/Example/Details/E911

  7. 如何在Linux下拷贝一个目录呢

    cp -af newadmin/movie/.   uploadfile/mallvideo/ 如何在Linux下拷贝一个目录呢?这好像是再简单不过的问题了. 比如要把/home/usera拷贝到/m ...

  8. Django添加模型无法数据迁移解决方法

    用Django开发一款博客,按照教程一步步写下来,发现当我创建一个模型blogpost的时候,使用数据迁移 python manage.py migrate 提示 Operations to perf ...

  9. apache apr介绍

    APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库.在早 ...

  10. php调试工具总结

    一:XDebug+Webgrind 二:XHProf