• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

kombypetras

Passar valores do Form1 para o Form2

6 mensagens neste tópico

Bem pessoal a minha dúvida é a seguinte:

Tenho uma aplicação em que é necessário efectuar login e quando efectuo login acedo a base de dados até aqui tudo certo, só que quando passo para o form1 deixo de saber qual o Professor(objecto definido pela minha classe) que efectuou login.

Então o que eu quero é enviar o objecto prof com os dados actualizados do form2 para o form1.

Desde já agradeço a atenção.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes ter um singleton ou então crias uma propriedade do tipo Professor no form e depois de o criares, atribuis-lhe o objecto Professor que queres passar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olha estive a pesquisar sobr singleton e fiquei com duvidas.

Será que me podias dar umas luzes de;

Como isso funciona??

Como se implementa??

etc

Desculpa o incomodo, desde já agradeço a tua ajuda e toda a atenção até porque consegui por a funcionar da outra maneira que explicaste a seguir mas pelo que investiguei com um singleton pareceu me bastante mais eficaz.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pessoal estou a tentar implementar o singleton como me foi sugerido anteriormente mas estou com uns problemas que nao consigo resolver...

tenho o seguinte

   

//classe do singleton

public class ProfGlobal

    {

        //Implements IDisposable

        private static ProfGlobal mySing;

        private static string prof = string.Empty;

        private ProfGlobal()

        {

        }

        public string editprof

        {

            get { return prof; }

            set { prof = value; }

        }

        public static ProfGlobal NovoSingleton(string Value)

        {

            mySing = new ProfGlobal();

            prof = Value;

            return mySing;

        }

        public static ProfGlobal getSingleton()

        {

            return mySing;

        }

    } 

classe da janela de login

private ProfGlobal myprof = null;

private void Button_Click_1(object sender, RoutedEventArgs e)

{

//recolhe os dados dos textBox e compara com os dados existentes na base de dados

//se se verificar um login valido

myprof.editprof = n;

MessageBox.Show("Nome: " + n);

this.Visibility = Visibility.Hidden;

new Window1().ShowDialog();

}

classe da janela principal

//parte do codigo

private ProfGlobal myprof = null;

        public Window1()

        {

            InitializeComponent();

            textBox1.Text = myprof.editprof;

        }

Quando corro a aplicação abre a janela de Login e se se verificar um login valido abre a janela principal.

Bom pessoal tenho esta situação e o k kero é quando estou na janela principal possa ter acesso aos dados obtidos no login mais concretamente aceder ao professor que efectuou login.

//erros quando executo a aplicação

A referência de objecto não foi definida como uma instância de um objecto.

myprof.editprof = n;

textBox1.Text = myprof.editprof;

Agradecia a vossa ajuda...

Cumprimentos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pessoal ja descobri o erro....  :P

Agradeço na mesma a vossa atenção.

o meu problema estava na inicialização das variáveis estáticas do tipo ProfGlobal ou seja na inicialização do singleton.

resolvi do seguinte modo..

na janela de login

private ProfGlobal myprof = null;  ->  private ProfGlobal myprof = ProfGlobal.NovoProfGlobal("");

na janela principal

private ProfGlobal myprof = null;  -> private ProfGlobal myprof = ProfGlobal.getProfGlobal();

Ja funcou...

Thanks

Obrigado a todos pela atenção.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora