DATAGRIDVIEW PASSAR VALOR DA COLUNA P/ OUTRO FORM
Ola pessoal, estou migrando do VB.NET para o C# e estou apanhando um pouco.
Preciso fazer o seguinte: Abro o formulário CadastroClientes e ao clicar no botão de consulta, Abro o formulário ConsultaClientes.
Ao dar duplo clique num registro do DataGridView da consulta, preciso passar o valor da coluna 0 para uma TextBox do formulário CadastroClientes.
No VB.Net eu fazia assim:
[txt-color=#0000f0]
No C#, seria mais ou menos assim:
[txt-color=#0000f0]
Alguém poderá me ajudar???????
Preciso fazer o seguinte: Abro o formulário CadastroClientes e ao clicar no botão de consulta, Abro o formulário ConsultaClientes.
Ao dar duplo clique num registro do DataGridView da consulta, preciso passar o valor da coluna 0 para uma TextBox do formulário CadastroClientes.
No VB.Net eu fazia assim:
[txt-color=#0000f0]
Private Sub DgvClientes_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DgvClientes.CellDoubleClick
If DgvClientes.Rows.Count = 0 Then Exit Sub
CadastroClientes.TxtCodigo.Text = DgvClientes.CurrentRow.Cells(0).Value.ToString
End If
End Sub
[/txt-color]No C#, seria mais ou menos assim:
[txt-color=#0000f0]
private void DgvClientes_CellDoubleClick(object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
{
if (DgvClientes.Rows.Count == 0)
return;
CadastroClientes.TxtCodigo.Text == DgvClientes.CurrentRow.Cells[0].Value.ToString [ô][ô] ESSA LINHA NÃO FUNCIONA
}
[/txt-color]Alguém poderá me ajudar???????
Você colocou o sinal de igual de forma errada (colocou duas vezes). Faça assim:
CadastroClientes.TxtCodigo.Text = DgvClientes.CurrentRow.Cells[0].Value.ToString
CadastroClientes.TxtCodigo.Text = DgvClientes.CurrentRow.Cells[0].Value.ToString
Olá Jaba, não é isso, não, (antes fosse), eu já havia tentado assim, mas também não funciona.
na minha linha de código, o Visual Studio sublinha em vermelho
[txt-color=#e80000]CadastroClientes.TxtCodigo[/txt-color].Text = DgvClientes.CurrentRow.Cells[0].Value.ToString();
na minha linha de código, o Visual Studio sublinha em vermelho
[txt-color=#e80000]CadastroClientes.TxtCodigo[/txt-color].Text = DgvClientes.CurrentRow.Cells[0].Value.ToString();
A mensagem de erro que aparece na Error List é essa:
An object reference is required for the non-static field, method, or property [ô]Projeto.CadastroClientes.TxtCodigo[ô]
Não sei como fazer para resolver.
An object reference is required for the non-static field, method, or property [ô]Projeto.CadastroClientes.TxtCodigo[ô]
Não sei como fazer para resolver.
Procure ver como [Ô]CadastroClientes.TxtCodigo.Text[Ô] foi criado internamente no seu projeto. Talvez esse controle esteja como private, intern ou até mesmo static, etc. Declare-o como public e faça o teste.
PERCIFILHO,
Só uma dica de quem já apanhou muito nessas idas e vindas, antes eu também fazia assim como vc fez.
Ainda que nesse caso sua coluna é a 0(zero), Mas se fosse uma das colunas depois dela e vc precisasse acrescentar ou retirar alguma coluna nessa grade, teria que açertar o Código e mudar a condição referente a coluna.
Só depois de ter tantos erros e ou trabalho para refazer grande parte de Código só por causa de ter acrescentado uma ou duas colunas a mais no grid, eu faço assim:.
If Grid_Dados.Columns(e.ColumnIndex).Name = Grdados_Excluir.Name Then
[ô] rotina
End If
Para passar o valor da coluna(celula) é assim:
valor=Grid_Dados.Rows(e.RowIndex).Cells(Grdados_Fabricante.Name).Value
[ô]Grdados_Excluir e Grdados_Fabricante são nomes das colunas, dessa forma você pode acrescentar ou retirar qualquer coluna, que não precisa alterar o código, não foi isso que vc pediu , mas fica a dica.
Detalhe, tem muita gente fazendo assim como você.
Só uma dica de quem já apanhou muito nessas idas e vindas, antes eu também fazia assim como vc fez.
Citação:If DgvClientes.Rows.Count = 0
Ainda que nesse caso sua coluna é a 0(zero), Mas se fosse uma das colunas depois dela e vc precisasse acrescentar ou retirar alguma coluna nessa grade, teria que açertar o Código e mudar a condição referente a coluna.
Só depois de ter tantos erros e ou trabalho para refazer grande parte de Código só por causa de ter acrescentado uma ou duas colunas a mais no grid, eu faço assim:.
If Grid_Dados.Columns(e.ColumnIndex).Name = Grdados_Excluir.Name Then
[ô] rotina
End If
Para passar o valor da coluna(celula) é assim:
valor=Grid_Dados.Rows(e.RowIndex).Cells(Grdados_Fabricante.Name).Value
[ô]Grdados_Excluir e Grdados_Fabricante são nomes das colunas, dessa forma você pode acrescentar ou retirar qualquer coluna, que não precisa alterar o código, não foi isso que vc pediu , mas fica a dica.
Detalhe, tem muita gente fazendo assim como você.
Esse CadastroClientes é teu Form, correto? Se sim, você chegou a criar uma instância dele?
Por exemplo:
CadastroClientes form = new CadastroClientes();
form.TxtCodigo.Text = DgvClientes.CurrentRow.Cells[0].Value.ToString();
Por exemplo:
CadastroClientes form = new CadastroClientes();
form.TxtCodigo.Text = DgvClientes.CurrentRow.Cells[0].Value.ToString();
Nilson, essa parte que você citou é para ver a quantidade de registros no grid, não colunas.
Valeu, Nilson, eu entendi o que você quis me mostrar, muito boa a dica.
Eu pensei que fosse mais fácil aprender C# , mas o VB.Net é muuuuuuuuuito mas fácil.
Pra ilustrar melhor o que eu preciso fazer, resolvi postar um exemplo, assim fica mais fácil de vocês ou outros colegas me auxiliarem.
Talvez a meneira que eu estou fazendo esteja errada, gostaria que me mostrassem onde estou errando, pois agora pretendo me entregar [Ô]de vez[Ô] ao C#. Estou adorando.
Até mais.
Eu pensei que fosse mais fácil aprender C# , mas o VB.Net é muuuuuuuuuito mas fácil.
Pra ilustrar melhor o que eu preciso fazer, resolvi postar um exemplo, assim fica mais fácil de vocês ou outros colegas me auxiliarem.
Talvez a meneira que eu estou fazendo esteja errada, gostaria que me mostrassem onde estou errando, pois agora pretendo me entregar [Ô]de vez[Ô] ao C#. Estou adorando.
Até mais.
JABA,
Essa dica é só para não referenciar as colunas pelo index, mas sim pelo nome, isso para facilitar a manutenção do projeto e evitar bugs, não tem a ver com a necessidade do PERCIFILHO.
Citação:Nilson, essa parte que você citou é para ver a quantidade de registros no grid, não colunas.
Essa dica é só para não referenciar as colunas pelo index, mas sim pelo nome, isso para facilitar a manutenção do projeto e evitar bugs, não tem a ver com a necessidade do PERCIFILHO.
Citação:Eu pensei que fosse mais fácil aprender C# , mas o VB.Net é muuuuuuuuuito mas fácil.
Estou a quase 6 anos no vb.net, penso em aprender C#, Mas detesto aquelas chaves,
Tópico encerrado , respostas não são mais permitidas