Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C#] richiamo un oggetto della classe e invece dovrei richiamare la classe?

    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
    
           
            
           }



    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Sposto nel forum corretto: Visual Basic e .NET Framework.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    problema risolto.

    Il problema nasceva perchè le la funzione "updatePosition" era una funzione statica, e questo generava un errore di compilazione.

    grazie cmq!

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.