DATAGRIDVIEW APANHANDO PARA CONFIGURAR
Boa noite, mudei de vb6 para C# e estou apanhando horrores vixiiiiiiiiiiii.
Criei um DataGridView e não consigo fazer como no saudoso MSFlexgrid que eram super simples.
1- identificar que clicou no cabeçalho da coluna para evitar erro exceção, pois ao clicar na linha ele preenche os campos com os dados do grid.
If (grade.CurrentRow != linha do cabeçalho ????)
{
txt_Codigo.Text = grade_bairros.CurrentRow.Cells[[Ô]bai_codigo[Ô]].Value.ToString();
}
Do contrário ele ordena a coluna com já é o padrão do controle.
Outra coisa que não consegui fazer é formatar o controle antes de receber os dados do banco, queria definir o texto dos cabeçalho (colunas), até aqui acho que resolvo pelo SQL, mas o problema é que não queria povoar o grid direto com os objetos do Net, mas sim na mão, porque há dados que precisam ser alterados, exemplo:
2- campos no banco com
S ou N mas tem que exibir um Sim ou Não
0 , 1, 2 mas exibem Ativo, Inativo, Pendente
3- Mudar a cor da fonte de determinada célula, após preencher com os dados se atender a certo critério, tipo o dado está inativo na tabela correspondente.
ex: Carreguei os dados da tabela funcionários, que trás também o respectivo cargo, se o cargo estiver inativo na empresa, ele é exibido em vermelho na grade.
3- Pré-definir as larguras das colunas e zebrar as linhas após o preenchimento
Coisas assim
Pesquisei mas encontrei codigos para VB.net que não consegui adaptar, pois a maior parte das propriedades não funcionavam no C#, outra coisa esquisita.
Alguém usa esse controle e poderia postar um exemplo?
Criei um DataGridView e não consigo fazer como no saudoso MSFlexgrid que eram super simples.
1- identificar que clicou no cabeçalho da coluna para evitar erro exceção, pois ao clicar na linha ele preenche os campos com os dados do grid.
If (grade.CurrentRow != linha do cabeçalho ????)
{
txt_Codigo.Text = grade_bairros.CurrentRow.Cells[[Ô]bai_codigo[Ô]].Value.ToString();
}
Do contrário ele ordena a coluna com já é o padrão do controle.
Outra coisa que não consegui fazer é formatar o controle antes de receber os dados do banco, queria definir o texto dos cabeçalho (colunas), até aqui acho que resolvo pelo SQL, mas o problema é que não queria povoar o grid direto com os objetos do Net, mas sim na mão, porque há dados que precisam ser alterados, exemplo:
2- campos no banco com
S ou N mas tem que exibir um Sim ou Não
0 , 1, 2 mas exibem Ativo, Inativo, Pendente
3- Mudar a cor da fonte de determinada célula, após preencher com os dados se atender a certo critério, tipo o dado está inativo na tabela correspondente.
ex: Carreguei os dados da tabela funcionários, que trás também o respectivo cargo, se o cargo estiver inativo na empresa, ele é exibido em vermelho na grade.
3- Pré-definir as larguras das colunas e zebrar as linhas após o preenchimento
Coisas assim
Pesquisei mas encontrei codigos para VB.net que não consegui adaptar, pois a maior parte das propriedades não funcionavam no C#, outra coisa esquisita.
Alguém usa esse controle e poderia postar um exemplo?
Segue Exemplo de fazer o que voce quer !
1: E So identificar o Evento [Ô]ColumnHeaderMouseClick[Ô]
2: Ai e na select voce na hora de preencher dar um IF e se for 0 ou 1, substitui pela string [Ô]sim[Ô] ou [Ô]nao[Ô]
3: Conforme exemplo mudando o Style da Celula
3: (de novo 3 ? ahuaihiau)
4: Zebrar é mudando a propriedade aassim ( dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.Cyan;) Conforme Anexo
Abraços
1: E So identificar o Evento [Ô]ColumnHeaderMouseClick[Ô]
2: Ai e na select voce na hora de preencher dar um IF e se for 0 ou 1, substitui pela string [Ô]sim[Ô] ou [Ô]nao[Ô]
3: Conforme exemplo mudando o Style da Celula
3: (de novo 3 ? ahuaihiau)
4: Zebrar é mudando a propriedade aassim ( dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.Cyan;) Conforme Anexo
Abraços
Zerocal muito legal, parece fácil depois que está pronto, mas chegar até aÃ.....
Estudando seu exemplo, primeiro tive de trocar o cabeçalho para abrir no VS 2008, tentei mudar as configurações da propriedade Columns, para deixar cada coluna com uma largura diferente (= dados exibidos), mas quando mudo um campo, os outros são redimensionados, e nunca fica nas medidas (With) que defini. ????
Agora isso só funcionou no designer quando rodo a aplicação, todos os campos ficam iguais (mesma largura)???
Pergunta: As mudanças que você fez em cada célula (cor e valor), se eu tivesse recebendo os dados de um DataTable por exemplo, o processo é o mesmo, eu teria de fazer a associação do DataTable no DataSource do grid e depois percorrer as linhas mudando os valores é isso?
Mais duas coizinhas:
1- Você usou if (cell.ColumnIndex == 3) para pegar a coluna, tem como usar no lugar do index o nome do campo vindo do banco?
2- Não descobri ainda como preencher o grid sem que ele selecione uma linha. Queria que a seleção da linha fosse feita pelo usuário e não após o preenchimento, tem como?
Muito obrigado, é bom aprender com quem SABE.
Deus lhe dê em dobro.
Estudando seu exemplo, primeiro tive de trocar o cabeçalho para abrir no VS 2008, tentei mudar as configurações da propriedade Columns, para deixar cada coluna com uma largura diferente (= dados exibidos), mas quando mudo um campo, os outros são redimensionados, e nunca fica nas medidas (With) que defini. ????
Agora isso só funcionou no designer quando rodo a aplicação, todos os campos ficam iguais (mesma largura)???
Pergunta: As mudanças que você fez em cada célula (cor e valor), se eu tivesse recebendo os dados de um DataTable por exemplo, o processo é o mesmo, eu teria de fazer a associação do DataTable no DataSource do grid e depois percorrer as linhas mudando os valores é isso?
Mais duas coizinhas:
1- Você usou if (cell.ColumnIndex == 3) para pegar a coluna, tem como usar no lugar do index o nome do campo vindo do banco?
2- Não descobri ainda como preencher o grid sem que ele selecione uma linha. Queria que a seleção da linha fosse feita pelo usuário e não após o preenchimento, tem como?
Muito obrigado, é bom aprender com quem SABE.
Deus lhe dê em dobro.
Ja vi que tu é um cara esperto, de uma lida aqui nessa pagina... tem bastante coisa sobre isso
http://csharp.net-informations.com/datagridview/csharp-datagridview-tutorial.htm
Responder melhor so posso a noite pois agora estou no trampo e dificulta bastante aqui !
Abraços
http://csharp.net-informations.com/datagridview/csharp-datagridview-tutorial.htm
Responder melhor so posso a noite pois agora estou no trampo e dificulta bastante aqui !
Abraços
Obrigado, vou tentar traduzir no google.
Abraçao.
Abraçao.
Manda bala amigão !
de uma coisa e certa, voce tera que saber ao minino de vb.net pra se virar por ai
ja deu uma olhada nesses artigos sobre filtragem em dataview do macoratti ?
segue os links
ADO.NET - Uma visão geral III : O objeto DataView
DataView - Ordenação e filtragem de dados
Eles mostram exatamente o que voce esta em duvida !
ja deu uma olhada nesses artigos sobre filtragem em dataview do macoratti ?
segue os links
ADO.NET - Uma visão geral III : O objeto DataView
DataView - Ordenação e filtragem de dados
Eles mostram exatamente o que voce esta em duvida !
é amigo eu não tenho hábito de entrar no Macoratti, quando fui lá tentei acher direto com C# e não encontrei. Vou ler esses links e passar a visitar mais o site dele também, ficava mais restrito ao Google. Vou ter de melhorar meus termos de busca, acho que por isso os filtros não estão retornando links satisfatórios.
Sobre VB.net eu decidi não misturar mais, optei pelo C# então vou olhar só códigos dele, pois fica uma salada na cabeça,mesmo porque ainda tenho VB6 em manutenção.
Obrigado pela grande ajuda.
Fui...
Sobre VB.net eu decidi não misturar mais, optei pelo C# então vou olhar só códigos dele, pois fica uma salada na cabeça,mesmo porque ainda tenho VB6 em manutenção.
Obrigado pela grande ajuda.
Fui...
Tópico encerrado , respostas não são mais permitidas