none
ORIENTAÇÃO DE OBJETOS RRS feed

  • Pergunta

  • Boa tarde amigos.

    Ainda sinto dificuldade de instanciar outros objetos em formulários diferentes, pois bem.

    tenho um formulário onde tenho um evento click que leva os dados para outro formulário:

     private void btnRelatorioExames_Click(object sender, EventArgs e)
            {
                Paciente clickReceitoario = (???)
                FrmReceitoario frmReceitoario = new FrmReceitoario(AcaoNaTela.Consultar, clickReceitoario);//construtor
                frmReceitoario.ShowDialog();
            }

    O problema é: Notem que passei o construtor desse formulário, para o formulário seguinte. Para quando eu clicar ele me trazer o dado nome para o txt do form seguinte.

    public partial class FrmReceitoario : Form
        {
            private Paciente _paciente;
            public FrmReceitoario(AcaoNaTela acaoNaTela, Paciente paciente)
            {
    
                InitializeComponent();
                this._paciente = paciente;
                if (acaoNaTela == AcaoNaTela.Consultar)
                {
                    txtNomeReceitoario.Text = paciente.NOME;
                }

    Resumindo, vou clicar no icone, ele vai levar os dados do textbox "nome" do mesmo formulário para o textbox "nome" do outro formulário.

    Eu acho que falta instanciar algo ali na primeira linha de código, onde tem as interrrogações...

    Algúem me ajuda? 

    sexta-feira, 29 de maio de 2015 17:46

Respostas

  • Felipe, você pode fazer assim:

    public partial class FrmReceitoario: Form
    {
      public Paciente ObjPaciente { get;set; }
      public AcaoNaTela ObjAcao {get;set;}
      
    
      public FrmReceitoario()
      {
        InitializeComponent();
        if(ObjAcao == AcaoNaTela.Consultar)
        {
          txtNomeReceitoario.Text = ObjPaciente.NOME;
        }
      }
    }
    
    public partial class FormPrincipal : Form
    {
      private void btnRelatorioExames_Click(object sender, EventArgs e)
      {
        FrmReceitoario frm = bew FrmReceitoario();
        frm.ObjPaciente = new Paciente();
        frm.ObjAcao = AcaoNaTela.Consultar;
        frm.ShowDialog();
      }
    }

    Comunicar a mesma informação entre os forms.

    • Marcado como Resposta Felipe STW segunda-feira, 1 de junho de 2015 12:19
    sexta-feira, 29 de maio de 2015 17:54

Todas as Respostas

  • Felipe, você pode fazer assim:

    public partial class FrmReceitoario: Form
    {
      public Paciente ObjPaciente { get;set; }
      public AcaoNaTela ObjAcao {get;set;}
      
    
      public FrmReceitoario()
      {
        InitializeComponent();
        if(ObjAcao == AcaoNaTela.Consultar)
        {
          txtNomeReceitoario.Text = ObjPaciente.NOME;
        }
      }
    }
    
    public partial class FormPrincipal : Form
    {
      private void btnRelatorioExames_Click(object sender, EventArgs e)
      {
        FrmReceitoario frm = bew FrmReceitoario();
        frm.ObjPaciente = new Paciente();
        frm.ObjAcao = AcaoNaTela.Consultar;
        frm.ShowDialog();
      }
    }

    Comunicar a mesma informação entre os forms.

    • Marcado como Resposta Felipe STW segunda-feira, 1 de junho de 2015 12:19
    sexta-feira, 29 de maio de 2015 17:54
  • Ele me retornou o seguinte erro, quando eu clico no botão.
    segunda-feira, 1 de junho de 2015 11:47
  • Felipe, antes de trabalhar com o OBJPaciente, você precisa instancia-lo.

    OBJPaciente = new Paciente();

    segunda-feira, 1 de junho de 2015 11:52
  • Alexandre. 

    Esse erro pode ocorrer quando uso o construtor em mais de um form? Já passei AcaoNaTela.consultar no mesmo form. Mudei para AcaoNaTela.consultar_ ele abre o form mas não me trás o nome do paciente...

    segunda-feira, 1 de junho de 2015 11:54
  • Você está tentando recuperar essas informações de onde? Um banco de dados ou de um formulário?

    Como está a sua lógica?

    segunda-feira, 1 de junho de 2015 11:56
  • Consegui Alexandre, na verdade eu nem precisei passar o construtor AcaoNaTela novamente, usei essa classe quando passei do datagrid para outro form. Valeu obrigado!

    segunda-feira, 1 de junho de 2015 12:20