using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace 画笔
{public partial class Form1 : Form{bool draw;//判断是否要开始画矩形框Point start; //画框的起始点Point end;//画框的结束点Point last_start, last_end;//用于记录上一个矩形框的位置int i = 0;public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){Graphics g = this.pictureBox1.CreateGraphics();Pen mypen = new Pen(Color.Red, 3);//设置画笔属性g.DrawRectangle(mypen,10,100,50,50);//按按钮画一个矩形}private void pictureBox1_MouseMove(object sender, MouseEventArgs e){Graphics g = this.pictureBox1.CreateGraphics();擦除上一个矩形框,防止鼠标拖动过程中,绘制多个矩形// if (e.Button == MouseButtons.Left)//如果鼠标左键按下就执行{Pen newpen = new Pen(Color.White, 3);i++;if(i>1)g.DrawRectangle(newpen, last_start.X, last_start.Y, last_end.X - last_start.X, last_end.Y - last_start.Y);//擦除之前的矩形}擦除上一个矩形框,防止鼠标拖动过程中,绘制多个矩形// /绘制矩形// Pen mypen = new Pen(Color.Red, 3);if (draw){Point nowpoint = this.PointToClient(Control.MousePosition);int Width1 = nowpoint.X - start.X;int Height1 = nowpoint.Y - start.Y;g.DrawRectangle(mypen,start.X,start.Y,Width1,Height1);}/绘制矩形// end = this.PointToClient(Control.MousePosition);last_start = start;//记录当前矩形位置起始坐标last_end = end;//记录当前矩形位置终点坐标}private void pictureBox1_MouseDown(object sender, MouseEventArgs e){i = 0;start = this.PointToClient(Control.MousePosition);//获取鼠标位置draw = true;}private void pictureBox1_MouseUp(object sender, MouseEventArgs e){draw = false;}}
}
效果如下
将picturebox控件背景设置成白色