コントロールの表面に図形を描画するには、 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); } }
追加の描画機能については、
以上がC# で Paint イベントを使用してマウスの位置に基づいて図形を描画するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。