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

       
        
       }



}