首页 > 后端开发 > C++ > 如何使用 C# Paint 事件在鼠标坐标处绘制矩形?

如何使用 C# Paint 事件在鼠标坐标处绘制矩形?

DDD
发布: 2024-12-31 09:17:14
原创
607 人浏览过

How to Draw Rectangles at Mouse Coordinates Using the C# Paint Event?

使用 Paint 事件在鼠标坐标处绘制形状

开发 GUI 应用程序时,经常需要在屏幕上绘制形状。实现此目的的一种方法是使用 Paint 事件,该事件在需要重绘控件表面的一部分时引发。

绘制矩形

在提供的示例代码,目标是在鼠标指针的坐标处绘制一个矩形。为了实现这一点,使用了 DrawRect() 方法。此方法将鼠标坐标和 PaintEventArgs 对象作为参数。

修改代码

要在 Paint 事件中包含鼠标坐标,需​​要将代码修改为如下:

  1. 添加参数MouseCoords 到 PaintEvent:

    private void Form1_Paint(object sender, PaintEventArgs e, Point mouseCoordinates)
    {
    
    }
    登录后复制
  2. 调用绘图函数:
    在 Paint 事件处理程序中,使用以下命令调用 DrawRect() 方法提供的鼠标坐标和 PaintEventArgs object:

    this.DrawRect(e, mouseCoordinates.X, mouseCoordinates.Y);
    登录后复制

完整代码

修改后的完整代码:

using System;
using System.Drawing;
using System.Windows.Forms;

public partial class Form1 : Form
{
    public void Form1_MouseMove(object sender, MouseEventArgs e)
    {
        int x = e.X;
        int y = e.Y;
        Point mouseCoord = new Point(x, y);
    }

    private void Form1_Paint(object sender, PaintEventArgs e, Point mouseCoord)
    {
        this.DrawRect(e, mouseCoord.X, mouseCoord.Y);
    }

    public void DrawRect(PaintEventArgs e, int x, int y)
    {
        Graphics gr = e.Graphics;
        Pen pen = new Pen(Color.Azure, 4);
        Rectangle rect = new Rectangle(0, 0, x, y);
        gr.DrawRectangle(pen, rect);
    }
}
登录后复制

附加注意事项

在控件的表面,始终使用 Paint 事件或重写 OnPaint 方法。不要存储 Graphics 对象,因为当控件被重新绘制时它会变得无效。相反,请使用 PaintEventArgs 对象提供的 Graphics 对象。

在 C# 中绘制形状的其他资源包括:

  • [在 C# 中绘制矩形](https://www. tutorialsteacher.com/csharp/csharp-draw-rectangle)
  • [绘画事件教程C#](https://www.c-sharpcorner.com/uploadfile/deba/paint-event-tutorial-in-csharp)

以上是如何使用 C# Paint 事件在鼠标坐标处绘制矩形?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板