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):
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?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); } } }
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!

Rispondi quotando