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

    [C#] - Accedere ai membri di una classe da un altro form

    Ciao, ho realizzato una classe Utente che si trova nel file Login.cs :

    Codice PHP:
    public class Utente
        
    {
            private 
    String nome;
            private 
    String cognome;
            private 
    String pwd;
            private 
    String matr;
            private 
    String facoltà;

            public 
    void setNomeUtente(String nm)
            {
                
    this.nome nm;
            }
            public 
    void setCognomeUtente(String cgnm)
            {
                
    this.cognome cgnm;
            }
            public 
    void setPassUtente(String pass)
            {
                
    this.pwd pass;
            }
            public 
    void setMatricolaUtente(String codm)
            {    
                
    this.matr codm;
            }
            public 
    void setFacoltàUtente(String fac)
            {
                
    this.facoltà fac;
            }

            public 
    String getNomeUtente()
            {
                return 
    this.nome;
            }
            public 
    String getCognomeUtente()
            {
                return 
    this.cognome;
            }
            public 
    String getPassUtente()
            {
                return 
    this.pwd;
            }
            public 
    String getMatricolaUtente()
            {
                return 
    this.matr;
            }
            public 
    String getFacoltàUtente()
            {
                return 
    this.facoltà;
            }
        } 
    Ora dal file MainForm.cs come faccio ad accedere ai membri della classe?

    Cioè io dovrei recuperare nome, cognome etc... per inserirli in label del mainform...

    Quindi ho tutto salvato nell'oggetto utente che però è istanziato nel file login.cs...

    come faccio a passarlo all'altro form?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Tu accedi all'oggetto, non alla classe.

    Come hai istanziato l'oggetto in Login.cs?

    Nel file MainForm.cs come hai chiamato il Login?

  3. #3
    in Login l'oggetto è istanziato con nome studente...
    in MainForm non c'è Login... nel senso che quando viene visualizzato mainform, login è già stato distrutto perchè non serve più, in quanto l'utente ha inserito i suoi dati, che sono stati validati, ed a effettuato il Login...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Fai vedere il codice dei due moduli ...

  5. #5
    Codice PHP:
            //Login.cs
            
    private void btnLogin_Click(object senderEventArgs e)
            {
                
    /* riferimento a questo form per accedere ai campi loginNomeTextBox*/
                
    utility.User this;
                
                
    /* Nuovo Studente da passare al MainForm */
                
    Utente student = new Utente();
                
                
    /* Acquisizione dei dati da xml */
                
    if (utility.caricaDati(studentutility.User.loginNomeTextBox.Text ".xml") == true)
                {
                    
    /* Se il login è corretto chiude questo form (di login) */
                    
    this.Dispose();
                }
            }

             
    //MainForm.cs
            
    private void MainForm_Load(object senderEventArgs e)
            {
                
    AnimateWindow(this.Handle350_Blend _Activate);
                
    /* Al caricamento devo compilare alcune label con i valori memorizzati in student*/
                
            

    Ecco a te... grazie per l'aiuto

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se l'oggetto di classe Utente e' istanziato localmente, ovviamente non ci potrai accedere ...

    Manca la chiamata del login dal form principale ... mostra il codice del main ... altrimenti come faccio a darti una indicazione ...?

  7. #7
    Codice PHP:
    //MAIN.cs
    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;

    namespace 
    VS_Gestione_Esami
    {
        static class 
    Program
        
    {
            
    /// <summary>
            /// Punto di ingresso principale dell'applicazione.
            /// </summary>
            
    [STAThread]
            static 
    void Main()
            {
                
    Application.EnableVisualStyles();
                
    Application.SetCompatibleTextRenderingDefault(false);
                
                
    Login login = new Login();
                
                
    DialogResult dr login.ShowDialog();
                
                
    login.Dispose();
                
                if (
    dr == DialogResult.OK)
                    
    Application.Run(new MainForm());
                
                return;
            }
        }
    }


    //Login.cs

    using System;
    using System.IO;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Xml;
    using System.Runtime.InteropServices;
    using System.Reflection;
    using System.Configuration;
    using System.Security.Cryptography;
    using VS_Gestione_Esami.Forms;
    using VS_Gestione_Esami.core;

    namespace 
    VS_Gestione_Esami
    {
        public 
    partial class Login Form
        
    {

            
    #region PInvoke
            
    private const uint _Blend 0x00080000;
            private const 
    uint _Activate 0x00020000;

            [
    DllImport("user32.dll")]
            private static 
    extern bool AnimateWindow(
                                                     
    IntPtr hWnd,
                                                     
    uint time,
                                                     
    uint flags
                                                    
    );
            
    #endregion

            
    Utility utility = new Utility();

            public 
    Login()
            {
                
    InitializeComponent();
            }

            private 
    void Login_Load(object senderEventArgs e)
            {
                
    AnimateWindow(this.Handle350_Blend);

                if (
    File.Exists("DatiAgendaElettronica.xml"))
                {
                    try
                    {
                        
    //Carica il profilo Utente 
                        //this._core.Load(this.lvwTodoDate);
                    
    }
                    catch
                    {

                    }
                }

            }

            private 
    void versioneToolStripMenuItem_Click(object senderEventArgs e)
            {
                
    Informazioni info = new Informazioni();
                
    info.Show();
            }

            private 
    void esciToolStripMenuItem_Click(object senderEventArgs e)
            {
                
    this.Close();
            }

            
    void LoginTextControlsTextChanged(object senderEventArgs e)
            {
                if ((
    this.loginNomeTextBox.TextLength 0) && (this.loginPasswdTextBox.TextLength 3))
                {
                    
    this.btnLogin.Enabled true;
                }

                else
                {
                    
    this.btnLogin.Enabled false;
                }
            }

            private 
    void btnLogin_Click(object senderEventArgs e)
            {
                
    utility.User this;
                
                
    Utente student = new Utente();

                if (
    utility.caricaDati(studentutility.User.loginNomeTextBox.Text ".xml") == true)
                {
                    
    this.Dispose();
                }
            }

            private 
    void linkLabel1_LinkClicked(object senderLinkLabelLinkClickedEventArgs e)
            {
                
    Registrazione reg = new Registrazione();
                
    reg.ShowDialog();
            }
       
        }

        public class 
    Utente
        
    {
            private 
    String nome;
            private 
    String cognome;
            private 
    String pwd;
            private 
    String matr;
            private 
    String facoltà;

            public 
    void setNomeUtente(String nm)
            {
                
    this.nome nm;
            }
            public 
    void setCognomeUtente(String cgnm)
            {
                
    this.cognome cgnm;
            }
            public 
    void setPassUtente(String pass)
            {
                
    this.pwd pass;
            }
            public 
    void setMatricolaUtente(String codm)
            {    
                
    this.matr codm;
            }
            public 
    void setFacoltàUtente(String fac)
            {
                
    this.facoltà fac;
            }

            public 
    String getNomeUtente()
            {
                return 
    this.nome;
            }
            public 
    String getCognomeUtente()
            {
                return 
    this.cognome;
            }
            public 
    String getPassUtente()
            {
                return 
    this.pwd;
            }
            public 
    String getMatricolaUtente()
            {
                return 
    this.matr;
            }
            public 
    String getFacoltàUtente()
            {
                return 
    this.facoltà;
            }
        }
            
    }



    //MainForm.cs
    using System;
    using System.IO;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Xml;
    using System.Runtime.InteropServices;
    using System.Reflection;
    using System.Configuration;
    using System.Security.Cryptography;
    using VS_Gestione_Esami.Forms;
    using VS_Gestione_Esami.core;

    namespace 
    VS_Gestione_Esami
    {
        public 
    partial class MainForm Form
        
    {

            
    #region PInvoke
            
    private const uint _Blend 0x00080000;
            private const 
    uint _Activate 0x00020000;

            [
    DllImport("user32.dll")]
            private static 
    extern bool AnimateWindow(
                                                     
    IntPtr hWnd,
                                                     
    uint time,
                                                     
    uint flags
                                                    
    );
            
    #endregion
            
            
    public MainForm()
            {
                
    InitializeComponent();
            }

            private 
    void MainForm_Load(object senderEventArgs e)
            {
                
    AnimateWindow(this.Handle350_Blend _Activate);

                
            }

            private 
    void esciToolStripMenuItem_Click(object senderEventArgs e)
            {
                
    Application.Exit();
            }


        }

    Credo che sia tutto...

  8. #8
    ma non c'è un modo alternativo per rendere accessibili queste informazioni all'interno del MainForm, ovviamente senza rileggerle da file...?

  9. #9
    ci sono riuscito!!!!

    Ho istanziato un nuovo Utente nel main, dichiarato un riferimento a Utente nel Login come attributo di classe, e un altro riferimento come attributo di classe nel MainForm, copiato le reference e tutto quadra...

    Codice PHP:
                //...Evito tutto il resto

                
    Login login = new Login();
                
    Utente studente = new Utente();
                
    DialogResult dr login.ShowDialog();
                
                
    studente login.student;
                
                
    login.Dispose();

                if (
    dr == DialogResult.OK)
                {
                    
    MainForm main = new MainForm();
                    
    main.studente studente;
                    
    Application.Run(main);
                } 

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.