• c#GDI+实现用鼠标画矩形


    c#GDI+实现用鼠标画矩形

    2018年05月25日 16:52:40 头发日渐减少 阅读数 954

    要求:

    设计一个根据鼠标来绘制矩形框的程序,即当按下鼠标左键并拖动至某个位置后释放鼠标使,可根据按下鼠标时的第一个点和释放鼠标时的第二个点来确定并绘制该矩形。

    设计思路:

    1.首先得到首次鼠标点击的位置 ,然后再得到鼠标在最后得到的位置。

    2.我们就需要返回值得到(x2-x1)的值,还有(y2-y1)的值

    3.我们在后台调动GDI+,将图像画出来。

    实现步骤。

    1.首先用鼠标的事件MouseDown、MouseUp得到鼠标点击时和鼠标松开时的x和y的坐标位置。具体的代码如下:

     private void form1_MouseDown(object sender, MouseEventArgs e)
            {
                firstpoint.X = e.X;
                firstpoint.Y = e.Y;
            }


            private void form1_MouseUp(object sender, MouseEventArgs e)
            {
                secondpoint.X = e.X;
                secondpoint.Y = e.Y;
               

            }

    当然在这之前要先定义fristpoint和second,如下:

    Point firstpoint;

     Point secondpoint;

    2.定义一个画图工具

    Graphics gra;

    3.确定矩形的位置

     gra.DrawRectangle(drawPen, firstpoint.X, firstpoint.Y, secondpoint.X - firstpoint.X, secondpoint.Y - firstpoint.Y);

    4.下面附上全部的代码和截图效果:

     Graphics gra;
            Point firstpoint;
            Point secondpoint;
            public form1()
            {
                InitializeComponent();
                gra = this.CreateGraphics();
                firstpoint = new Point(0, 0);
                secondpoint = new Point(0, 0);


            }
       


            private void Form1_Paint(object sender, PaintEventArgs e)
            {
           
            }


            private void form1_MouseDown(object sender, MouseEventArgs e)
            {
                firstpoint.X = e.X;
                firstpoint.Y = e.Y;
            }


            private void form1_MouseUp(object sender, MouseEventArgs e)
            {
                secondpoint.X = e.X;
                secondpoint.Y = e.Y;
                Pen drawPen = new Pen(Color.Red, 3);
                gra.DrawRectangle(drawPen, firstpoint.X, firstpoint.Y, secondpoint.X - firstpoint.X, secondpoint.Y - firstpoint.Y);


            }

     

        }

    写的不好互喷,也希望能够给大家提供下参考。

  • 相关阅读:
    统计八连块
    linux-shell编程-添加用户并设置权限
    chrome 的网站测试工具
    windows10安装自带的ubuntu子系统
    开源项目阅读笔记--appium+adb
    TODO 软件质量模型--理论
    java -static的特性和使用,静态类/方法/块/内部类/回收机制
    TODO 竞品分析方法——关于导航评测的一些笔记
    mock工具:mock.js 和vscode faker,moco
    移动App性能评测与优化-Android内存测试 ,DVM原理
  • 原文地址:https://www.cnblogs.com/grj001/p/12224549.html
Copyright © 2020-2023  润新知