none
Carregar Dados do GridView para outro Form RRS feed

  • Pergunta

  • Boa noite galera.

    Estou iniciando em C# e estou fazendo meu TCC com esta linguagem. Estou aprendendo na força, rsrs.

    Estou prestes a entregar o projeto e faltam algumas coisinhas que tenho que fazer ainda.

    Será que alguém pode me ajudar por favor?

    Eu criei dois forms. Um form de cadastro, onde se tem os textbox, e um botão com uma lupa.

    Nessa lupa, quando o usuário clicar, irá aparecer uma tela de pesquisa com um gridview.

    Queria saber como eu poderia selecionar o cadastro, clicar no botão selecionar e carregar no primeiro form

    as informações em seus devidos textbox.

    Detalhe: Eu estou utilizando entity framework...

    Desde ja agradeço galerinha!

    quarta-feira, 16 de maio de 2012 23:04

Respostas

  • Luana segue um simples exemplo que fiz aqui espero que possa te ajudar, o codigo está todo comentado qualquer dúvida é só entrar em contato.

    BD:

    Código cs Form1:

    public Form1()
            {
                InitializeComponent();
            }
    
            //Variável statica do tipo Cliente
            //que recebe null
            public static Cliente cliente = null;
    
            //Evento load do formulário
            private void Form1_Load(object sender, EventArgs e)
            {
               
            }
    
            //Método Privado que carrega os valores
            //nos textbox
            private void CarregaTextBox()
            {
                //se a variável cliente for 
                //doferente de null
                if (cliente != null)
                {
                    //atribuo os valores ao textbox
                    txtCodigo.Text = cliente.Id.ToString();
                    txtNome.Text = cliente.Nome;
                }
            }       
    
            //Evento click do btnlupa...
            private void btnLupa_Click(object sender, EventArgs e)
            {
                //Instância do form2
                Form2 form = new Form2();
                //Aqui chamo o form2 que contem o datagridview
                //e abro um dialogo entre o form1 e o form2 e se 
                //caso o resultado do dialogo for "OK" eu chamo o método 
                //que carrega os textbox
                if (form.ShowDialog() == DialogResult.OK)
                {
                    //Chamo o método que carrega o textbox
                    CarregaTextBox();
                }
            }

    Código cs Form2:

    public Form2()
            {
                InitializeComponent();
            }
            //Evento load do form2 onde carrega o datagridview
            private void Form2_Load(object sender, EventArgs e)
            {
                using (var ctx = new Exemplo())
                {
                    dataGridView1.DataSource = ctx.Cliente;
                }
            }
    
            //evento click do botão selecionar
            private void btnSelecionar_Click(object sender, EventArgs e)
            {
                //Recupero a linha selecionada no datagridview, pegando o valor da céula 0
                //que no meu caso é o id do cliente que quero recuperar...
                //***** Setei o SelectionMode do GRid para fullrowselect*****
                int codigo = (int)dataGridView1.CurrentRow.Cells[0].Value;
    
                using (var ctx = new Exemplo())
                         {
                    //Aqui recupero o cliente e vinculo o mesmo 
                    //na variável statica criada no form1
                    Form1.cliente = ctx.Cliente.FirstOrDefault(x => x.Id == codigo);
                    //e seto o resultado do dialogo como ok
                    this.DialogResult = DialogResult.OK;
                }
            }

    Resultado:

    Abraços e espero ter ajudado!


     "Feliz aquele que transfere o saber e aprende o que ensina."(Cora Coralina)


    Pablo Batista Cardoso
    www.pablobatistacardoso.com.br
    pablobatistacardoso@hotmail.com

    quinta-feira, 17 de maio de 2012 00:07

Todas as Respostas

  • Luana segue um simples exemplo que fiz aqui espero que possa te ajudar, o codigo está todo comentado qualquer dúvida é só entrar em contato.

    BD:

    Código cs Form1:

    public Form1()
            {
                InitializeComponent();
            }
    
            //Variável statica do tipo Cliente
            //que recebe null
            public static Cliente cliente = null;
    
            //Evento load do formulário
            private void Form1_Load(object sender, EventArgs e)
            {
               
            }
    
            //Método Privado que carrega os valores
            //nos textbox
            private void CarregaTextBox()
            {
                //se a variável cliente for 
                //doferente de null
                if (cliente != null)
                {
                    //atribuo os valores ao textbox
                    txtCodigo.Text = cliente.Id.ToString();
                    txtNome.Text = cliente.Nome;
                }
            }       
    
            //Evento click do btnlupa...
            private void btnLupa_Click(object sender, EventArgs e)
            {
                //Instância do form2
                Form2 form = new Form2();
                //Aqui chamo o form2 que contem o datagridview
                //e abro um dialogo entre o form1 e o form2 e se 
                //caso o resultado do dialogo for "OK" eu chamo o método 
                //que carrega os textbox
                if (form.ShowDialog() == DialogResult.OK)
                {
                    //Chamo o método que carrega o textbox
                    CarregaTextBox();
                }
            }

    Código cs Form2:

    public Form2()
            {
                InitializeComponent();
            }
            //Evento load do form2 onde carrega o datagridview
            private void Form2_Load(object sender, EventArgs e)
            {
                using (var ctx = new Exemplo())
                {
                    dataGridView1.DataSource = ctx.Cliente;
                }
            }
    
            //evento click do botão selecionar
            private void btnSelecionar_Click(object sender, EventArgs e)
            {
                //Recupero a linha selecionada no datagridview, pegando o valor da céula 0
                //que no meu caso é o id do cliente que quero recuperar...
                //***** Setei o SelectionMode do GRid para fullrowselect*****
                int codigo = (int)dataGridView1.CurrentRow.Cells[0].Value;
    
                using (var ctx = new Exemplo())
                         {
                    //Aqui recupero o cliente e vinculo o mesmo 
                    //na variável statica criada no form1
                    Form1.cliente = ctx.Cliente.FirstOrDefault(x => x.Id == codigo);
                    //e seto o resultado do dialogo como ok
                    this.DialogResult = DialogResult.OK;
                }
            }

    Resultado:

    Abraços e espero ter ajudado!


     "Feliz aquele que transfere o saber e aprende o que ensina."(Cora Coralina)


    Pablo Batista Cardoso
    www.pablobatistacardoso.com.br
    pablobatistacardoso@hotmail.com

    quinta-feira, 17 de maio de 2012 00:07
  • Nossa, deu certinho! 

    Muito obrigada Pablo...

    sábado, 19 de maio de 2012 19:17