ホームページ >バックエンド開発 >C++ >C# ペイント イベントを使用してマウス座標で四角形を描画する方法

C# ペイント イベントを使用してマウス座標で四角形を描画する方法

DDD
DDDオリジナル
2024-12-31 09:17:14607ブラウズ

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

ペイント イベントを使用してマウス座標で図形を描画する

GUI アプリケーションを開発する場合、多くの場合、画面上に図形を描画する必要があります。これを行う 1 つの方法は、コントロールの表面の一部を再描画する必要があるときに発生する Paint イベントを使用することです。

長方形の描画

提供されているサンプル コードの目的は、マウス ポインターの座標に四角形を描画することです。これを実現するには、DrawRect() メソッドが使用されます。このメソッドは、マウス座標と PaintEventArgs オブジェクトを引数として受け取ります。

コードの変更

ペイント イベントにマウス座標を含めるには、コードを次のように変更する必要があります。

  1. の引数を追加します。 MouseCoowned から PaintEvent へ:

    private void Form1_Paint(object sender, PaintEventArgs e, Point mouseCoordinates)
    {
    
    }
  2. 描画関数の呼び出し:
    Paint イベント ハンドラーで、DrawRect() メソッドを次のように呼び出します。提供されたマウス座標と PaintEventArgsオブジェクト:

    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# ペイント イベントを使用してマウス座標で四角形を描画する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。