要在控件表面绘制形状,您需要依赖在其 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); } }
有关其他绘图功能:
以上是C#中如何使用Paint事件根据鼠标位置绘制形状?的详细内容。更多信息请关注PHP中文网其他相关文章!