none
Controlar entrada de dados em um DataGridView RRS feed

  • 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.

    quarta-feira, 11 de maio de 2011 14:07

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
    quinta-feira, 12 de maio de 2011 12:07

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! ##
    quinta-feira, 12 de maio de 2011 00:05
  • 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.

     

    quinta-feira, 12 de maio de 2011 11:22
  • 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
    quinta-feira, 12 de maio de 2011 12:07
  • 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.

    quinta-feira, 12 de maio de 2011 13:29