Paint 이벤트를 사용하여 마우스 좌표에 도형 그리기
GUI 애플리케이션을 개발할 때 화면에 도형을 그려야 하는 경우가 종종 있습니다. 이를 수행하는 한 가지 방법은 컨트롤 표면의 일부를 다시 그려야 할 때 발생하는 Paint 이벤트를 사용하는 것입니다.
직사각형 그리기
제공된 예제 코드의 목표는 마우스 포인터의 좌표에 직사각형을 그리는 것입니다. 이를 달성하기 위해 DrawRect() 메서드가 사용됩니다. 이 메소드는 마우스 좌표와 PaintEventArgs 객체를 인수로 사용합니다.
코드 수정
Paint 이벤트에 마우스 좌표를 포함하려면 코드를 다음과 같이 수정해야 합니다. 다음:
의 인수를 추가합니다. MouseCoordinates를 PaintEvent에 적용:
private void Form1_Paint(object sender, PaintEventArgs e, Point mouseCoordinates) { }
그리기 함수 호출:
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# Paint 이벤트를 사용하여 마우스 좌표에 직사각형을 그리는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!