> 백엔드 개발 > 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 메서드를 재정의합니다. Control이 무효화되면 그래픽 객체가 무효화되므로 저장하지 마세요. 그리기에는 PaintEventArgs 개체에서 제공하는 Graphics 개체를 활용합니다.

문제 해결

제공된 C# 코드는 마우스 좌표를 기반으로 사각형을 그리려고 시도하지만 잘못된 DrawRect() 메서드로 인해 문제가 발생합니다. 기도. 이 문제를 해결하려면 필요한 인수(예: 그래픽, 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<드로잉Rectangle>()을 사용하세요.
  • 마우스 이벤트를 처리하여 직사각형을 생성, 수정, 제거합니다.
  • 페인트 이벤트에서 직사각형을 반복하고 다음을 사용하여 그립니다. 제공된 그래픽 object.

참고자료

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

위 내용은 C#에서 Paint 이벤트를 사용하여 마우스 위치에 따라 모양을 그리는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿