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

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

2018年05月25日 头发日渐减少

要求:

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

设计思路:

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);


        }



    }

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值