ホームページ > バックエンド開発 > C++ > C# で Paint イベントを使用してマウスの位置に基づいて図形を描画するにはどうすればよいですか?

C# で Paint イベントを使用してマウスの位置に基づいて図形を描画するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-05 10:27:39
オリジナル
399 人が閲覧しました

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

ペイント イベントを利用してマウス座標に基づいて図形をレンダリングするにはどうすればよいですか?

前奏曲

コントロールの表面に図形を描画するには、 Paint イベントで使用するか、カスタム/ユーザー コントロールの OnPaint メソッドをオーバーライドします。 Graphics オブジェクトはコントロールが無効になると無効になるため、保存しないでください。描画には、PaintEventArgs オブジェクトによって提供される Graphics オブジェクトを利用します。

問題の解決

提供された C# コードは、マウス座標に基づいて四角形を描画しようとしますが、正しくない DrawRect() メソッドが原因で問題が発生します。呼び出し。これを修正するには、必要な引数 (e.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 イベントで、四角形をループし、次を使用して四角形を描画します。提供されたグラフィックスオブジェクト。

参考資料

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

以上がC# で Paint イベントを使用してマウスの位置に基づいて図形を描画するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート