Bom dia!

Gostaria da ajuda de vocês na seguinte questão: Tenho uma aplicação que no Item "Menu" tem duas opções - 1 - Entrada e 2 - Saída essas duas opções chamam o mesmo form, após chamar o form gostaria de saber quem está chamando o form para poder alterar o text do form para Entrada ou Saída. Segue trecho do código....

public partial class frmDocGestao : Form
    {
        public frmDocGestao()

        {
            InitializeComponent();
            //Não gerar linhas no datagridview automáticamente
            dtgPesquisa.AutoGenerateColumns = false;
            //Verificar se foi chamado no Menu "Entrada ou Saída"
            if(....)
            {
                this.Text = "Gestão de Doc - Entrada";
            }
            
            else
            {
                this.Text = "Gestão de Doc - Saída";
            }
        }

Agradeço por qualquer ajuda....

Obrigado.

Charles Menezes

Exibições: 176

As respostas para este tópico estão encerradas.

Respostas a este tópico

Tu podes colocar um parâmetro no construtor do segundo Form e passar esse parâmetro de acordo com o botão que estiver abrindo o formulário.

Crie um atributo que receba uma variável na form.

public string strTitulo { get; set; }

Quando for chamar form, antes do form.show, vc pode colocar:

form objForm = new form();

objform.StrTitulo = "E";

if(This.strTitulo == "E")
{
    this.Text = "Gestão de Doc - Entrada";
}
            
else
{
    this.Text = "Gestão de Doc - Saída";
}

no meu form Menu está assim:

 private void entradaMaterial_Click(object sender, EventArgs e)
        {
            frmDocGestao FrmDocEntradasGestao = new frmDocGestao();
            FrmDocEntradasGestao.Show();
        }

private void saidaMaterial_Click(object sender, EventArgs e)
        {
            frmDocGestao FrmMateraisSaidasGestao = new frmDocGestao();
            FrmMateraisSaidasGestao.Show();
        }



Ricardo Henrique de Carvalho disse:

Crie um atributo que receba uma variável na form.

public string strTitulo { get; set; }

Quando for chamar form, antes do form.show, vc pode colocar:

form objForm = new form();

objform.StrTitulo = "E";

if(This.strTitulo == "E")
{
    this.Text = "Gestão de Doc - Entrada";
}
            
else
{
    this.Text = "Gestão de Doc - Saída";
}

//Menu entrada

private void entradaMaterial_Click(object sender, EventArgs e)
    {
        frmDocGestao FrmDocEntradasGestao = new frmDocGestao();
        FrmDocEntradasGestao.strParametro = "E";
        FrmDocEntradasGestao.Show();
    }

//form

public partial class frmDocGestao : Form
    {
        public string strParametro { get; set; }
        public frmDocGestao()
        {
            InitializeComponent();
            //Não gerar linhas no datagridview automáticamente
            dtgPesquisa.AutoGenerateColumns = false;
            //Verificar se foi chamado no Menu "Entrada ou Saída"
            if(this.strParametro == "E")
            {
                this.Text = "Gestão de Doc - Entrada";
            }
            
            else
            {
                this.Text = "Gestão de Doc - Saída";
            }
        }
    }

Parceiro de programação, pra facilitar meu trabalho diário utilizo identificadores(parâmetros) para diferenciar.

Exemplo se fosse um cadastro: colocaria um campo <input type="hidden" id="CodID">

na hora de recuperar os dados do form se o campo CodID estiver preenchido trata de um update e se vazio é insert.

Ou seja para cada botão você tem um método coloque todos os parâmetros necessários para cada botão neste método a fim de diferenciar o conteúdo utilizando um campo compartilhado

        {

            frmDocGestao FrmDocEntradasGestao = new frmDocGestao();

            FrmDocEntradasGestao.strParametro = 'Coloque_aqui_o_que_desejar';

            FrmDocEntradasGestao.Show();
        }

Para tratar depois utilize uma condição para diferenciar na tratativa de recuperação dos dados do formulário dentro da classe if( This.VariavelCriadaDoForm == "Coloque_aqui_o_que_desejar"){ sim } else{ não }

A ideia é compreender o conceito para que você utilize em várias partes dos seus projetos.

Eu costumo usar querystring.. 

Como formulario.aspx?tipo=e

Mas como voce esta indo pelo caminho de gerar classe etc.. 

ou crio na session["origem"]="E"

Segue trecho do código que está dando o erro. O erro é na conversão de DateTime...

 private void atualizaGrid()
        {
            DocNg docNg = new DocNg();
            DocColecaoDto docColecaoDto = new DocColecaoDto();
            docColecaoDto = docNg.ConsultarDoc(txtNome.Text, Convert.ToInt32(txtCodigo.Text), Convert.ToDateTime(txtDataInicial.Text), Convert.ToDateTime(txtDataFinal.Text), cboLoja.Text, cboStatus.Text);
            dtgPesquisa.DataSource = null;
            dtgPesquisa.DataSource = docColecaoDto;
            dtgPesquisa.Update();
            dtgPesquisa.Refresh();
            int TotalRegistros = dtgPesquisa.RowCount;
            txtTotalRegistro.Text = Convert.ToString(TotalRegistros);
            if (TotalRegistros == 0)
            {
                MessageBox.Show("Nenhum registro encontrado! Tente outra vez.");

            }

        }

Eu faço uma pesquisa usando um ou mais dos parâmetros acima....as vezes as datas irão sem dados, ou seja "  /   / " e também é um problema...tem uma maneira de resolver isso?



Ricardo Henrique de Carvalho disse:

//Menu entrada

private void entradaMaterial_Click(object sender, EventArgs e)
    {
        frmDocGestao FrmDocEntradasGestao = new frmDocGestao();
        FrmDocEntradasGestao.strParametro = "E";
        FrmDocEntradasGestao.Show();
    }

//form

public partial class frmDocGestao : Form
    {
        public string strParametro { get; set; }
        public frmDocGestao()
        {
            InitializeComponent();
            //Não gerar linhas no datagridview automáticamente
            dtgPesquisa.AutoGenerateColumns = false;
            //Verificar se foi chamado no Menu "Entrada ou Saída"
            if(this.strParametro == "E")
            {
                this.Text = "Gestão de Doc - Entrada";
            }
            
            else
            {
                this.Text = "Gestão de Doc - Saída";
            }
        }
    }

RSS

© 2018   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço