C#GDI在控件上绘图的⽅法
at at本⽂以在chart控件上和窗体上画矩形为例⼦讲述了C# GDI在控件上绘图的⽅法。分享给⼤家供⼤家参考。具体⽅法如下:具体的实现⽅法就不多解释了,备注很详细,代码也很简单。
主要功能代码如下:
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 condPoint = new Point(0, 0); //⿏标第⼆点
public bool begin = fal; //是否开始画矩形
/// <summary>
/// 在from上画矩形pink是什么意思啊
/// </summary>
Graphics g;
/// <summary>
/
// 在chart1控件上画矩形
/// </summary>
武汉人信汇
Graphics g2;
/// <summary>
/// 在窗体上按下⿏标事件
/// </summary>
/// <param name="nder"></param>
/// <param name="e"></param>
private void data_MouDown(object nder, MouEventArgs e)
{
begin = true;
firstPoint = new Point(e.X, e.Y);
}
/// <summary>
/// 在窗体上⿏标移动开始绘图
/// </summary>
/// <param name="nder"></param>
/// <param name="e"></param>
private void data_MouMove(object nder, MouEventArgs e)
{
if (begin)
{
/
/清除窗体绘图⾯,相当于刷新了⼀次窗体界⾯然后重新绘制
g.Clear(this.BackColor);
//获取新的右下⾓坐标tube
condPoint = new Point(e.X, e.Y);
//获取两个数中的⼤者或⼩者
int minX = Math.Min(firstPoint.X, condPoint.X);
maniint minY = Math.Min(firstPoint.Y, condPoint.Y);
int maxX = Math.Max(firstPoint.X, condPoint.X);
int maxY = Math.Max(firstPoint.Y, condPoint.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); }
sxd}
/// <summary>
/// ⿏标松开停⽌绘图
/// </summary>
/// <param name="nder"></param>
/// <param name="e"></param>大学英语四六级
private void data_MouUp(object nder, MouEventArgs e)
{
begin = fal;
}
/// <summary>
/// 在chart控件上移动⿏标绘图
/// </summary>
/// <param name="nder"></param>
/// <param name="e"></param>
private void chart1_MouMove(object nder, MouEventArgs e)
{
if (begin)
{
//重新在chart上⾯绘图,此处不能⽤clear⽅法,clear会清除整个绘图界⾯chart控件会被清除
this.Refresh();
/
/获取新的右下⾓坐标
condPoint = new Point(e.X, e.Y);
int minX = Math.Min(firstPoint.X, condPoint.X);
int minY = Math.Min(firstPoint.Y, condPoint.Y);
int maxX = Math.Max(firstPoint.X, condPoint.X);
int maxY = Math.Max(firstPoint.Y, condPoint.Y);belongto
//画矩形
g2.DrawRectangle(new Pen(Color.Red), minX, minY, maxX - minX, maxY - minY);
}
}
/// <summary>
/
// ⿏标松开停⽌绘图
/// </summary>
/// <param name="nder"></param>
/// <param name="e"></param>
private void chart1_MouUp(object nder, MouEventArgs e)
{
begin = fal;
aabc}
/// <summary>
/// 在chart控件上按下⿏标
/// </summary>
/
// <param name="nder"></param>
/// <param name="e"></param>
private void chart1_MouDown(object nder, MouEventArgs e)
{
begin = true;
firstPoint = new Point(e.X, e.Y);
}
}
}
希望本⽂所述对⼤家的C#程序设计有所帮助