none
TextBox, ComboBox e DataGridView RRS feed

  • Pergunta

  • Caros amigos,

     

    Meu cenário e o seguinte, tenho um formulário com os devidos componentes:

     

    5 Botões, Novo, Salvar, Editar, Deletar e Cancelar

    4 TextBox, Código(TxtCod), Nome(TxtNome), Endereço(TxtEnd), Telefone(TxtTel)

    2 ComboBox, Cargo(CboCargo) e Setor(CboSetor)

    1 DataGridView(DtGUsuarios)

     

    Como faço para quando eu clicar no Botão Editar(BtnEdit) a linha selecionada no DataGrid preencha os campos Text e Combo Afim de serem Alterados os dados, alguém pode me ajudar.

    sábado, 26 de setembro de 2009 02:16

Respostas

  • Olá

    Pode fazer assim:

    1 - cheque primeiro se a linha do grid foi selecionada:

    if (DtGUsuarios.SelectedRows.Count > 0)

    2 - se sim, leia os dados do grid para os campos:
           
    TxtCod.Text = DtGUsuarios.CurrentCell.OwningRow.Cells["Codigo"].Value.ToString();
    TxtNome.Text = DtGUsuarios.CurrentCell.OwningRow.Cells["Nome"].Value.ToString();
    TxtEnd.Text = DtGUsuarios.CurrentCell.OwningRow.Cells["Endereco"].Value.ToString();
    TxtTel.Text = DtGUsuarios.CurrentCell.OwningRow.Cells["Telefone"].Value.ToString();
    CboCargo.SelectedValue = DtGUsuarios.CurrentCell.OwningRow.Cells["CodCargo"].Value;
    CboSetor.SelectedValue = DtGUsuarios.CurrentCell.OwningRow.Cells["CodSetor"].Value;

    Onde os nomes entre aspas em Cells["xxxx"] são os nomes dos campos no grid.

    That's it.

    []s

             

    Robson Castilho - MCTS .Net 2.0 Windows/Web Applications [Se o post foi útil, não esqueça de marcá-lo. Obrigado]
    • Marcado como Resposta pra_santos quarta-feira, 30 de setembro de 2009 01:18
    sábado, 26 de setembro de 2009 03:30
  • Robson,

    Esta dando esses erros:

    'System.Windows.Forms.DataGrid' does not contain a definition for 'SelectedRows'

    'System.Windows.Forms.DataGridCell' does not contain a definition for 'OwningRow'

    Estou usando VS 2005
    • Marcado como Resposta pra_santos quarta-feira, 30 de setembro de 2009 01:18
    domingo, 27 de setembro de 2009 22:28
  • Opa,

    Voce disse "DataGridView ". É o controle que vem por padrão na seção "Data" da Toolbox.

    Os erros apresentados ocorreram pq voce está usando o "DataGrid", um controle mais antigo, que, se nao me engano, nem vem mais por padrão na toolbox. Como voce o achou? :) Sobre este, nem posso te dizer (só testando) pq nunca o usei.

    Pq nao usa o DataGridView?



    Robson Castilho - MCTS .Net 2.0 Windows/Web Applications [Se o post foi útil, não esqueça de marcá-lo. Obrigado]
    • Marcado como Resposta pra_santos quarta-feira, 30 de setembro de 2009 01:18
    segunda-feira, 28 de setembro de 2009 01:01
  • pra_santos,

    Segue a biblioteca com os metodos e classes no datagrid.

    http://msdn.microsoft.com/pt-br/library/system.windows.forms.datagrid_members.aspx

    att,

    Fernanda




    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    • Marcado como Resposta pra_santos quarta-feira, 30 de setembro de 2009 01:18
    terça-feira, 29 de setembro de 2009 17:59
    Moderador
  • Robson meu amigo você e fera mesmo, funcionou, muito obrigado, Deus te abenções
    • Marcado como Resposta pra_santos quarta-feira, 30 de setembro de 2009 01:18
    quarta-feira, 30 de setembro de 2009 01:18

Todas as Respostas

  • Olá

    Pode fazer assim:

    1 - cheque primeiro se a linha do grid foi selecionada:

    if (DtGUsuarios.SelectedRows.Count > 0)

    2 - se sim, leia os dados do grid para os campos:
           
    TxtCod.Text = DtGUsuarios.CurrentCell.OwningRow.Cells["Codigo"].Value.ToString();
    TxtNome.Text = DtGUsuarios.CurrentCell.OwningRow.Cells["Nome"].Value.ToString();
    TxtEnd.Text = DtGUsuarios.CurrentCell.OwningRow.Cells["Endereco"].Value.ToString();
    TxtTel.Text = DtGUsuarios.CurrentCell.OwningRow.Cells["Telefone"].Value.ToString();
    CboCargo.SelectedValue = DtGUsuarios.CurrentCell.OwningRow.Cells["CodCargo"].Value;
    CboSetor.SelectedValue = DtGUsuarios.CurrentCell.OwningRow.Cells["CodSetor"].Value;

    Onde os nomes entre aspas em Cells["xxxx"] são os nomes dos campos no grid.

    That's it.

    []s

             

    Robson Castilho - MCTS .Net 2.0 Windows/Web Applications [Se o post foi útil, não esqueça de marcá-lo. Obrigado]
    • Marcado como Resposta pra_santos quarta-feira, 30 de setembro de 2009 01:18
    sábado, 26 de setembro de 2009 03:30
  • Robson,

    Esta dando esses erros:

    'System.Windows.Forms.DataGrid' does not contain a definition for 'SelectedRows'

    'System.Windows.Forms.DataGridCell' does not contain a definition for 'OwningRow'

    Estou usando VS 2005
    • Marcado como Resposta pra_santos quarta-feira, 30 de setembro de 2009 01:18
    domingo, 27 de setembro de 2009 22:28
  • Opa,

    Voce disse "DataGridView ". É o controle que vem por padrão na seção "Data" da Toolbox.

    Os erros apresentados ocorreram pq voce está usando o "DataGrid", um controle mais antigo, que, se nao me engano, nem vem mais por padrão na toolbox. Como voce o achou? :) Sobre este, nem posso te dizer (só testando) pq nunca o usei.

    Pq nao usa o DataGridView?



    Robson Castilho - MCTS .Net 2.0 Windows/Web Applications [Se o post foi útil, não esqueça de marcá-lo. Obrigado]
    • Marcado como Resposta pra_santos quarta-feira, 30 de setembro de 2009 01:18
    segunda-feira, 28 de setembro de 2009 01:01
  • pra_santos,

    Segue a biblioteca com os metodos e classes no datagrid.

    http://msdn.microsoft.com/pt-br/library/system.windows.forms.datagrid_members.aspx

    att,

    Fernanda




    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    • Marcado como Resposta pra_santos quarta-feira, 30 de setembro de 2009 01:18
    terça-feira, 29 de setembro de 2009 17:59
    Moderador
  • Robson meu amigo você e fera mesmo, funcionou, muito obrigado, Deus te abenções
    • Marcado como Resposta pra_santos quarta-feira, 30 de setembro de 2009 01:18
    quarta-feira, 30 de setembro de 2009 01:18