DATAGRIDVIEW APANHANDO PARA CONFIGURAR

PESCADOR 20/09/2011 22:34:50
#384804
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?
RODRIGOFERRO 21/09/2011 08:14:35
#384809
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


PESCADOR 21/09/2011 09:58:59
#384828
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.
RODRIGOFERRO 21/09/2011 10:26:34
#384831
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
PESCADOR 21/09/2011 11:11:08
#384844
Obrigado, vou tentar traduzir no google.
Abraçao.
RODRIGOFERRO 21/09/2011 13:08:52
#384861
Manda bala amigão !
RODRIGOFERRO 21/09/2011 22:36:32
#384912
Resposta escolhida
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 !
PESCADOR 22/09/2011 08:31:35
#384920
é 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...
Tópico encerrado , respostas não são mais permitidas