Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    24

    c# associare evento click a un oggetto

    ciao ragazzi,
    ho una form dove devo disegnare dei poligoni irregolari utilizzando graphics, brush, array di punti e compagnia bella.
    Per quanto riguarda il disegno dei poligoni non ci sono problemi, delego tutto a una classe che si occupa del disegno (vi posto il codice così è più chiaro di mille parole):

    codice:
    using System.Data;
    using System.Drawing;
    ...
    
    namespace WindowsFormApplication1
    {
        public partial class Form1 : Form
        {
            public Graphics gPoligono;
            public Class1 poligono1;
    
            public Fotm1()
            {
                ...
            }
    
            private void Form1_Paint(object sender, PaintEventArgs e)
            {
                gPoligono = this.CreateGraphics();
                Brush b = new SolidBrush(Color.Blue);
                Point[] punti = new Point[]
                    {new Point(10, 10),
                     new Point(10, 100),
                     new Point(50, 65),
                     new Point(100, 120),
                     new Point(105, 40)};
                 
                poligono1 = new Class1(gPoligono, b, punti);
            }
        }
    
        public class Class1
        {
            public Class1(Graphics poligono, Brush b, Point[] punti)
            { 
                poligono.FillPolygon(b, punti);
            }
        }
    }
    in questo modo quando viene disegnata la Form1 viene anche creato l'oggetto poligono1 (istanza della classe Class1 che si occupa di disegnare il poligono sulla form). Come detto prima fino a qui nessun problema ma ora dovrei fare in modo che tutti i poligoni che vengono disegnati siano "cliccabili" dall'utente, cioè generino un evento al click del mouse su di essi (ipoteticamente nella Form1 doveri avere una cosa del tipo "poligono1_Click" che viene generato quando l'utente clicca sul poligono1) . Qualcuno saprebbe dirmi se è possibile fare una cosa del genere?
    Dimenticavo: se fosse possibile vorrei evitare di usare i pictureBox perchè dovrò avere più poligoni irregolari adiacenti (quindi hanno dei lati in comune) e utilizzando delle pictureBox invece sarei vincolato ad avere dei contenitori rettangolari.

    Spero di essere stato abbastanza chiaro.
    Grazie!

  2. #2
    Ciao.
    Prima di indicarti qualche possibile soluzione vorrei consigliarti di passare ad una tecnologia più adatta di WindowsForm ..... credo che avendo queste necessità, sia molto meglio passare a WPF.

    Facci sapere....
    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    24
    Ciao jeremy75,
    grazie mille per il consiglio, sto provando le wpf e penso sia proprio quello di cui avevo bisogno.
    Mi rifarò sentire in caso di problemi.
    Grazie grazie!
    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.