none
Recuperar variaveis de um outro form RRS feed

  • Pergunta

  • Galera estou com um problema,

    Estou fazendo um prgrama de login e perfil com banco de dados em mysql.

    Na tela de login tudo está funcionado, eu estou criando uma variavel no tipo int chamada IdUsuarioLogado e quero recuperar ela em uma outra form, eu ja procurei sobrevariaveis globais mais não achei nada que pudesse me ajudar.

     

    Obs:

    Form do login = FormLogin

    Form do perfil = FormPerfil

    variavel tipo inteiro INT com o nome de IdUsuarioLogado

    quinta-feira, 6 de outubro de 2011 04:45

Respostas

  • vc pode colocar a variável no construtor e setar a sua variável private na aplicação, assim:

    public Principal (string IdUsuario, NomeUsuario)

    {

    this.idUsuario = idUsuario;
    this.NomeUsuario = NomeUsuario; 

    }

    instanciando a classe fica assim:

    Principal variaval = new  Principal(ID_DO_USUARIO, NOME_DO_USUARIO); // Principal(1, "Diego");

    entendeu?

    quinta-feira, 6 de outubro de 2011 19:29
  • na prática o construtor java e c# são idênticos, exatamente como eu falei ali em cima, o que muda são os métodos get & set...

    sexta-feira, 7 de outubro de 2011 18:54

Todas as Respostas

  • Guilherme,

    Podes criar um objecto User

    Ex:

     

    public class User
        {
            private static User instance = null;
            private long idUser;
            private string userName;
           
            #region gets and sets
    
         
             public long  UserName
            {
                get { return idUser; }
                set { idUser = value; }
            }
            public long IdUser       
          {             get { return idUser; } 
                set { idUser = value; }         
            }                                  
         public User()        
         {             
           this.idUser = 0;            
           this.userName = string.empty;  
          }      
            
           /// <summary> 
           /// instancia da classe 
           /// </summary>    
           public static User  Instance    
              
           {           
                get            
                {                
                  if (instance == null)             
                  {            
                     instance = new User();      
                  }                
                  return instance;             
                }              
                set 
                { 
                   instance = value; 
                }        
           } 
    }

     

     

    Ao fazer o login

    User.Instancia.IdUser = o id do user

    User.Instancia.UserName = o nome do user

     

    No form seguinte

     

    txtNomeUser.Text = User.Instancia.UserName

    ........

    Como a intancia nao foi perdida entao pode-se utilizar ate destruir a intancia

    para tal e so fazer User.Instancia= null.

     

    Espero que ajude.....


     

     




    quinta-feira, 6 de outubro de 2011 08:42
  • Guilherme,

    Sugiro que você dê uma olhada neste artigo que mostra diversas maneiras de se passar informações de um Form para outro:

    http://www.codeproject.com/KB/cs/pass_data_between_forms.aspx


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    quinta-feira, 6 de outubro de 2011 17:34
    Moderador
  • Cara tem várias formas de fazer isso...
    O Cipriano citou uma bem lega e o material do André vai te ajudar bastante também.
    Mas a forma mais simples de todas é assim:

     No teu FormPerfil crie uma variável (ou um método) public com o nome IdUsuarioLogado e no FormLogin depois do login vc faz isso:

    FormPerfil variavel = new FormPerfil();
    variavel.IdUsuarioLogado = ID_DO_USUARIO;
    variavel.ShowDialog(); // ou variavel.Show() tanto faz...

    Isso ai é o método mais simples que eu conheço, começa com esse e quando vc se aperfeiçoar na linguagem tenta coisas novas... 

    Qualquer dúvida posta ai... vlw

    quinta-feira, 6 de outubro de 2011 17:44
  • Cara tem várias formas de fazer isso...
    O Cipriano citou uma bem lega e o material do André vai te ajudar bastante também.
    Mas a forma mais simples de todas é assim:

     No teu FormPerfil crie uma variável (ou um método) public com o nome IdUsuarioLogado e no FormLogin depois do login vc faz isso:

    FormPerfil variavel = new FormPerfil();
    variavel.IdUsuarioLogado = ID_DO_USUARIO;
    variavel.ShowDialog(); // ou variavel.Show() tanto faz...

    Isso ai é o método mais simples que eu conheço, começa com esse e quando vc se aperfeiçoar na linguagem tenta coisas novas... 

    Qualquer dúvida posta ai... vlw

    Cara,  se puder me ajudar, Colocar a variavel com o metodo public, como se faz isso ?

    rsrs, estou bem no começo do C# e não tenho paciencia de esperar a professora do meu curso tecnico explicar...

    quinta-feira, 6 de outubro de 2011 18:09
  • blza... 

    Isso é o básico do C# hehe faz assim:

    private int variavel;
    public int Variavel // primeira letra maiúscula - o importante é diferenciar os dois nomes

            {

                get { return variavel; } // aki com letra minuscula

                set { variavel = value; } // aki tbm

            } 

     

    isso é o famoso método get e set no C#.
    Dependendo da tua versão do visual studio tu clica com  o botão direito no nome da variavel private e vai em:
    Refactor -> Encapsule field (ou pelo comando CTRL + R solta e depois aperta E) que ele cria o get & set pra ti.

     

    quinta-feira, 6 de outubro de 2011 18:43
  • Eu consegui fazer funcionar

    na janela do login

    Principal frmPrincipal = new Principal(IdUsuario);

    frmPrincipal.Show();

     

    na janela do perfil

       public Principal(string IdUsuario)
            {
                InitializeComponent();
            }

     

    mais eu gostaria de saber, tem como colocar mais variaveis publicas dentro de um construtor, ou eu tenho que criar varios deles para cada variavel.

    ex

    public Principal (string IdUsuario, NomeUsuario)

    {

    ...

    }

    quinta-feira, 6 de outubro de 2011 19:21
  • vc pode colocar a variável no construtor e setar a sua variável private na aplicação, assim:

    public Principal (string IdUsuario, NomeUsuario)

    {

    this.idUsuario = idUsuario;
    this.NomeUsuario = NomeUsuario; 

    }

    instanciando a classe fica assim:

    Principal variaval = new  Principal(ID_DO_USUARIO, NOME_DO_USUARIO); // Principal(1, "Diego");

    entendeu?

    quinta-feira, 6 de outubro de 2011 19:29
  • Hoje em java tive uma idéia +/- de como funciona om construtor, mais obrigado a todos, resolvei meu problema.

    xD

    sexta-feira, 7 de outubro de 2011 17:28
  • Guilherme,

    Sensacional que você conseguiu solucionar essa sua questão!

    Agora, para fecharmos a thread, você poderia marcar como resposta os posts que te ajudaram a resolver o problema?

    Obrigado pelo apoio...


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    sexta-feira, 7 de outubro de 2011 18:21
    Moderador
  • na prática o construtor java e c# são idênticos, exatamente como eu falei ali em cima, o que muda são os métodos get & set...

    sexta-feira, 7 de outubro de 2011 18:54