Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menggunakan Acara Cat untuk Melukis Bentuk Berdasarkan Kedudukan Tetikus dalam C#?

Bagaimanakah Saya Boleh Menggunakan Acara Cat untuk Melukis Bentuk Berdasarkan Kedudukan Tetikus dalam C#?

Susan Sarandon
Susan Sarandonasal
2025-01-05 10:27:39407semak imbas

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

Bagaimanakah Saya Memanfaatkan Acara Cat untuk Memaparkan Bentuk Berdasarkan Koordinat Tetikus?

Prelude

Untuk melukis bentuk pada permukaan Kawalan, anda bergantung pada acara Catnya atau mengatasi kaedah OnPaint bagi Kawalan tersuai/pengguna. Elakkan menyimpan objek Grafiknya, kerana ia menjadi tidak sah apabila Kawalan tidak sah. Gunakan objek Grafik yang disediakan oleh objek PaintEventArgs untuk melukis.

Menyelesaikan Isu

Kod C# yang disediakan cuba melukis segi empat tepat berdasarkan koordinat tetikus tetapi menghadapi masalah disebabkan kaedah DrawRect() yang salah seruan. Untuk membetulkan ini, hantarkan argumen yang diperlukan (e.Graphics, x, y) kepada kaedah DrawRect().

Penyelesaian Komprehensif

Dalam senario lukisan yang kompleks, pertimbangkan untuk menentukan kaedah yang berbeza untuk dikendalikan tugas lukisan khusus, menghantar objek e.Graphics kepada kaedah ini untuk operasi lukisan.

A Custom Contoh

Coretan kod berikut membentangkan contoh lukisan segi empat tepat semasa tetikus bergerak:

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);
    }
}

Penambahan Selanjutnya

Untuk keupayaan lukisan tambahan:

  • Tetapkan warna sempadan bentuk kepada a Medan.
  • Gunakan Senarai() untuk menyimpan butiran segi empat tepat.
  • Kendalikan acara tetikus untuk mencipta, mengubah suai dan mengalih keluar segi empat tepat.
  • Dalam Cat acara, gelung melalui segi empat tepat dan lukiskannya menggunakan Grafik yang disediakan objek.

Rujukan

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Acara Cat untuk Melukis Bentuk Berdasarkan Kedudukan Tetikus dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn