c#矩形框的绘制

news/2024/11/13 4:33:50/
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控件背景设置成白色


http://www.ppmy.cn/news/544404.html

相关文章

画框

画框的代码 HWND hWndDesk ::GetDesktopWindow(); HDC DeskDC ::GetWindowDC(hWndDesk); //取得桌面设备场景 int oldRop2 SetROP2(DeskDC, /*R2_NOTXORPEN*/R2_NOTXORPEN); HPEN newPen ::CreatePen(0, 3, 0); //建立新画笔,载入DeskDC HGDIOBJ oldPen ::SelectObject(D…

快速查询银行卡发卡省市和归属银行,了解自己的财务状况!

API接口是现代软件开发的基本组成部分。它们允许应用程序通过互联网连接到其他软件系统,并从这些系统中获取或传输数据。银行卡归属地查询API接口是为开发人员提供的一种工具,可以帮助他们轻松地查询银行卡的归属地信息。在本文中,我们将介绍…

R语言利用克里金插值法绘制研究区降水等值线图

要在R语言中根据Excel表中的多站点降水数据,利用克里金插值法绘制研究区的降水等值线图,可以按照以下步骤进行操作: 1. 准备数据:将Excel表中的多站点降水数据导入R中。可以使用readxl包来读取Excel文件,确保已经安装…

斗地主的规则|欢乐斗地主的规则

斗地主牌型 火箭:即双王(大王和小王),最大的牌。 :四张同数值牌(如四个 7 )。 单牌:单个牌(如红桃 5 )。 对牌:数值相同的两张牌(如…

斗地主积分

"""斗地主积分""" print("***欢迎来到斗地主积分程序***") A input("第一个人的名字") B input("第二个人的名字") C input("第三个人的名字") a 0 b 0 c 0 while True: dizhu …

QQ欢乐豆斗地主心得体会(四):合谋赢豆

刚刚又在玩QQ欢乐斗地主,只可惜,这次不够欢乐。 本金,300万豆,运气比较好,赢到将近400万。突然,形势急转直下,一直输,一直到180多万豆。本来这一局,有硬炸在手&#xff0…

使用yolov5和强化学习训练一个AI智能欢乐斗地主(一)

这里写自定义目录标题 项目介绍项目过程介绍训练yolov5目标检测斗地主收集数据集yolov5调参 项目介绍 你好! 欢迎阅读我的文章,本章将介绍,如何使用yolov5和强化学习训练一个AI斗地主,本项目将分为三个部分,其中包含&…

QQ欢乐斗地主的心得体会--坑杀盟友

斗地主进行到 最终决赛时,经常发生这种情况: 第1名 分数很高,比如 10000分。 第2名和第3名 分数差不多,但是和第1名相差 较远,比如 4200和4500分。 这种情况下,经常会发生“ 第3名逆袭”的情况。 今天又发…