Usuário com melhor resposta
Controlar entrada de dados em um DataGridView

Pergunta
-
Bom dia,
Existe alguma maneira de pré-definir a entrada de dados em uma coluna no DataGridView?
Eu sei que existe a propriedade Format no DefaultCellStyle, porém, mesmo eu definindo que aquela coluna vai ser de formatação numérica com duas casas decimais (N2), ainda assim ele permite a entrada de qualquer tipo e não da nenhum tipo de erro.
Sei que pelo evento CellValidating dá certo, só que lá tem o problema de eu ficar especificando a index da coluna para saber o tipo que vou validar, e como estou querendo usar esse mesmo DataGridView para servir de cadastro genérico para todo o sistema, não queria ficar com 100 IFs dentros do evento, pois ia ficar terrivelmente confuso e para dar futuras manutenções ia ser um inferno.
Pensei em um maneira de resolver isso vendo o tipo que foi definido que seria aquela coluna e comparar com o tipo de entrada (ia ser facil, e limpo, resolveria com 10 linhas de códigos) porém não consigo achar uma propriedade da celula que me retorne o tipo que já deixei pré-definida (no caso a N2).
Alguém já passou por isso e tem uma solução?
Obrigado.
Respostas
-
Infelizmente não tem nada comparado com o Maskedtextbox, o que você pode fazer é criar um componente extendido que faça essas validações dependendo do tipo que informar, numérico, data e tal. Você poderia validar esses dados no evento keypress e no cellvaluechanged.
Bruno Ferreira de Souza
MSP - Microsoft Student Partner
MCTS .NET Framework - Windows Applications
MCPD .NET Framework - Windows Applications
www.maestrodotnet.com.br
@BrunoMaestro- Sugerido como Resposta Luiz Estevam quinta-feira, 12 de maio de 2011 13:10
- Marcado como Resposta AndreAlvesLimaModerator segunda-feira, 16 de maio de 2011 12:24
Todas as Respostas
-
Nao entendi direito o q vc quer fazer, vai usar o grid para visualizar registros ou vai usa-lo para entrar com os dados.
Se vai entrar com os dados como voce setaria certas informaçoes no grid ? Dê mais detalhes.
Um forte abraço,
Atenciosamente,
Alexsandro Nunes Lacerda
http://www.alexsandronunes.com.br
-----------------------------------
Microsoft MCT | MCPD | MCTS | MCP
Software Architect e Team Leader
Especialista .Net
## Se esta ajudou proponha como resposta! ## -
Olá, desculpe se não fui muito claro.
Vou usá-lo como cadastro mesmo. Irei entrar, modificar e excluir dados por ele. Só que não estou usando bindingsource nem nada, estou fazendo tudo na mão mesmo. Desde inserir colunas no grid e preencher as linhas.
O que eu queria saber era se tinha como eu setar uma coluna para receber um tipo de dado, e apenas ele, disparando alguma excessão se tiver uma entrada de dado incompatível.
Obrigado.
-
Infelizmente não tem nada comparado com o Maskedtextbox, o que você pode fazer é criar um componente extendido que faça essas validações dependendo do tipo que informar, numérico, data e tal. Você poderia validar esses dados no evento keypress e no cellvaluechanged.
Bruno Ferreira de Souza
MSP - Microsoft Student Partner
MCTS .NET Framework - Windows Applications
MCPD .NET Framework - Windows Applications
www.maestrodotnet.com.br
@BrunoMaestro- Sugerido como Resposta Luiz Estevam quinta-feira, 12 de maio de 2011 13:10
- Marcado como Resposta AndreAlvesLimaModerator segunda-feira, 16 de maio de 2011 12:24
-
Entendi.
Para falar a verdade acho um saco trabalhar com o DataGridView com este fim de cadastro.
Problema que meu chefe acordou com raiva de fichas de cadastros em Forms e resolveu que queria tudo em grid. Lamentavel...
Bom, obrigado pelas respostas de todos.