.NET: Controle para trabalhar com campos formatados
Trabalhando em um projeto Windows Forms, precisei formatar a apresentação de um campo para que utilizasse casas decimais. Tendo em vista que no .NET 2.0 foi incorporado o controle MaskedTextBox, meus primeiros testes foram utilizando ele.
Conclusão: esqueça-o.
O que eu precisava fazer era apresentar uns valores totais utilizando uma formatação simples, algo do tipo 1.000,00 ou 10,50. No Delphi eu resolveria esse abacaxi usando a propriedade DisplayFormat e definido uma máscara de apresentação.
No Visual Studio a coisa foi um pouco mais complicada. O MaskedTextBox parece ser muito bom para campos do tipo CEP, CPF, CNPJ, etc que usam máscaras fixas. No entanto, para campos de apresentação de valores não foi muito flexível.
Em uma rápida pesquisa no Google encontrei uma solução bacana para o problema: NumericBox. Através do site Windows Forms.net, cheguei ao site do responsável pelo NumericBox. Este, por sua vez, é um controle gratuito para ser usado na apresentação de valores com casas decimais ou não. Veja:

Para utilizá-lo basta fazer o download, descompactar o .zip e adicionar o controle à ToolBox do Visual Studio: botão direito sobre ela / choose items / na aba .NET Framework Components clicar sobre o botão Browse / navegar até o arquivo descompactado anteriormente e selecionar o NumericBox.dll que está na pasta Binary. Pronto! Com isso você já pode arrastar e soltar o controle no seu formulário.
Apesar de ter resolvido o meu problema de apresentação, não consegui fazer o controle ficar ReadOnly (ele não possui esta propriedade e parece que ignora o valor do Handled nos eventos KeyPress e KeyDown). No entanto, usando a propriedade Enabled consegui simular um comportamento parecido e que serviu muito bem para esta situação.
Fica aí a dica! Espero que ajude.
Até +.




Deixe o seu comentário