C# GDI在控件上绘图
来源:互联网 发布:数据的重要性的名言 编辑:程序博客网 时间:2024/04/30 02:45
以在chart控件上和窗体上画矩形为例子
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;using System.Configuration;namespace WFApp2{ public partial class data : Form { public data() { InitializeComponent(); //窗体 g = this.CreateGraphics(); //chart控件 g2 = this.chart1.CreateGraphics(); } public Point firstPoint = new Point(0, 0); //鼠标第一点 public Point secondPoint = new Point(0, 0); //鼠标第二点 public bool begin = false; //是否开始画矩形 /// <summary> /// 在from上画矩形 /// </summary> Graphics g; /// <summary> /// 在chart1控件上画矩形 /// </summary> Graphics g2; /// <summary> /// 在窗体上按下鼠标事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void data_MouseDown(object sender, MouseEventArgs e) { begin = true; firstPoint = new Point(e.X, e.Y); } /// <summary> /// 在窗体上鼠标移动开始绘图 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void data_MouseMove(object sender, MouseEventArgs e) { if (begin) { //清除窗体绘图面,相当于刷新了一次窗体界面然后重新绘制 g.Clear(this.BackColor); //获取新的右下角坐标 secondPoint = new Point(e.X, e.Y); //获取两个数中的大者或小者 int minX = Math.Min(firstPoint.X, secondPoint.X); int minY = Math.Min(firstPoint.Y, secondPoint.Y); int maxX = Math.Max(firstPoint.X, secondPoint.X); int maxY = Math.Max(firstPoint.Y, secondPoint.Y); //画框 g.DrawRectangle(new Pen(Color.Red), minX, minY, maxX - minX, maxY - minY); //ControlPaint.DrawReversibleFrame(new Rectangle(minX, minY, maxX - minX, maxY - minY),this.BackColor,FrameStyle.Dashed); } } /// <summary> /// 鼠标松开停止绘图 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void data_MouseUp(object sender, MouseEventArgs e) { begin = false; } /// <summary> /// 在chart控件上移动鼠标绘图 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void chart1_MouseMove(object sender, MouseEventArgs e) { if (begin) { //重新在chart上面绘图,此处不能用clear方法,clear会清除整个绘图界面chart控件会被清除 this.Refresh(); //获取新的右下角坐标 secondPoint = new Point(e.X, e.Y); int minX = Math.Min(firstPoint.X, secondPoint.X); int minY = Math.Min(firstPoint.Y, secondPoint.Y); int maxX = Math.Max(firstPoint.X, secondPoint.X); int maxY = Math.Max(firstPoint.Y, secondPoint.Y); //画矩形 g2.DrawRectangle(new Pen(Color.Red), minX, minY, maxX - minX, maxY - minY); } } /// <summary> /// 鼠标松开停止绘图 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void chart1_MouseUp(object sender, MouseEventArgs e) { begin = false; } /// <summary> /// 在chart控件上按下鼠标 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void chart1_MouseDown(object sender, MouseEventArgs e) { begin = true; firstPoint = new Point(e.X, e.Y); } }}
- C# GDI在控件上绘图
- c# GDI+简单绘图
- c# GDI+简单绘图
- c# GDI+简单绘图
- c# GDI+简单绘图
- c# GDI+简单绘图
- C# GDI+ 简单绘图
- c# GDI+简单绘图
- C# GDI+简单绘图
- C# GDI+ 简单绘图
- C# GDI+ 简单绘图
- C# GDI+ 简单绘图
- C# GDI+ 简单绘图
- C# GDI+简单绘图
- C# GDI+ 绘图
- c# GDI+简单绘图
- C# GDI+ 绘图
- C# GDI+绘图
- 语音质量和语音质量的测量
- 【JSP】赵雅智_自定义JSP标签
- 武汉科技大学计算机学院11月月赛:The Little Girl who Picks Mushrooms
- WCF大数据量传输解决方案
- 关于补码的那些事
- C# GDI在控件上绘图
- 高通与安卓水火不容 Android音频系统缺陷测评
- jquery 单机选中改变样式
- 深度剖析 Android音频系统解析与改进
- Android音频架构性能分析
- 看视频如何做笔记
- 最新Connectify注册码(序列号) Connectify3.7序列号 破解版
- AsyncTask的坑,Handler,Looper与MessageQueue
- 第五章 微型计算机输入输出接口