ciao a tutti!
stavo facendo un esercizietto di richiamare in una classe "Form4" un altro oggetto di tipo "formaquadrato" e non sapisco perchè se io voglio aggiornare la posizione di un oggetto con un apposita funzione "updateposition" nella classe principale( una form) mi chiede nome_classe.updateposition anzichè istanza_della classe.updateposition.
Tra l'altro se metto nome_classe.updateposition funziona solo con un oggetto della classe, non con più oggetti, e questa cosa mi sembra non abbia senso.
Inoltre se io nella classe principale non dichiaro nessun oggetto di tipo formaquadro e lascio la funzione formaquadro.updateposition il pezzo è visibile e viene aggiornizione.
L'aggiornamento della posizione avviene all'interno della funzione associata a un timer.
Vi posto il codice:
codice:using System; using System.Drawing;// il namespace per gli elementi del form using System.Windows.Forms;// il namespaces per il form using System.Web; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing.Drawing2D; using System.Runtime.InteropServices; using System.Media; using System.Timers; using System.Threading; class Form4 : Form { public int pausa = 1; public Form4() { /* timers*/ System.Timers.Timer timer = new System.Timers.Timer(3000); timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); timer.Enabled = true; /* AGGIUNGO GLI OGGETTI AL FORM*/ public formaquadrato q = new formaquadrato(); public formaquadrato q1 = new formaquadrato(); this.Controls.Add(q); this.Controls.Add(q1); /* funzione che si attiva al verificarsi del timer*/ void timer_Elapsed(object sender, ElapsedEventArgs e) { formaquadrato.updatePosition(); //q.updatePosition(); this.Invalidate(); } /* override OnPaint*/ protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Graphics g = e.Graphics; formaquadrato.PPaint(g); // funzione che mi disegna l'oggetto }
}

Rispondi quotando

