首页 > 后端开发 > C++ > C#中如何使用Paint事件根据鼠标位置绘制形状?

C#中如何使用Paint事件根据鼠标位置绘制形状?

Susan Sarandon
发布: 2025-01-05 10:27:39
原创
404 人浏览过

How Can I Use the Paint Event to Draw Shapes Based on Mouse Position in C#?

如何利用 Paint 事件根据鼠标坐标渲染形状?

Prelude

要在控件表面绘制形状,您需要依赖在其 Paint 事件上或重写自定义/用户控件的 OnPaint 方法。避免存储其 Graphics 对象,因为它会在 Control 失效时变得无效。利用 PaintEventArgs 对象提供的 Graphics 对象进行绘图。

解决问题

提供的 C# 代码尝试根据鼠标坐标绘制矩形,但由于 DrawRect() 方法不正确而面临问题调用。要纠正这个问题,请将所需的参数(例如 Graphics、x、y)传递给 DrawRect() 方法。

综合解决方案

在复杂的绘图场景中,请考虑定义不同的方法来处理专门的绘图任务,将 e.Graphics 对象传递给这些方法进行绘图操作。

自定义示例

以下代码片段展示随着鼠标移动绘制矩形的示例:

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;
        DrawRect(e.Graphics, x, y);
    }

    private void Form1_Paint(object sender, PaintEventArgs e)
    {

    }

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

进一步增强

有关其他绘图功能:

  • 将形状的边框颜色分配给字段。
  • 使用 List() 来存储矩形详细信息。
  • 处理鼠标事件以创建、修改和删除矩形。
  • 在 Paint 事件中,循环遍历矩形并使用提供的 Graphics 绘制它们对象。

参考文献

  • https://i.sstatic.net/jbVZK.gif

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

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