首頁 > 後端開發 > 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板