02/09/2010
Vinicius Vieira
Parceiro é possível sim, e é relativamente simples de fazer, tanto que já aproveitei e fiz uma que quase já atende o que você quer, basta fazer alguma alterações, básicamente é só você herdar a classe de um componente básica e fazer sua alterações, inclsa um arquivo de classe no seu projeto de utilidades ou de controles se tiver um e cole o código abaixo, depois disso em todas as soluções que esse projeto estiver presenta vai aparecer na toolbox como se fosse um controle normal com esse nome que eu coloquei na classe, ai é só você arrastar ele para o seu form depois de colocado no form vc seleciona ele e vai nas propriedades altera a propriedade tipo e ve o que acontece!Vou colocar umas imagens para ilustrar o que eu to falando, abraços!using System;using System.Collections.Generic;using System.Text;using System.Windows.Forms;using System.ComponentModel;namespace Util{ public enum TipoMskTextBox{ CNPJ, CPF, RG, DEFAULT } public class CutomMskTextBox:MaskedTextBox { public CutomMskTextBox() { } private bool aceitaLetras = true; private bool aceitaSubTraco = true; private TipoMskTextBox tipo = TipoMskTextBox.DEFAULT; public string TIPO { get { return parseTipoMskTextBoxString(tipo); } set { tipo = parseStringTipoMskTextBox(value); setTipo(); } } private void setTipo() { if (tipo == TipoMskTextBox.RG) { this.Mask = "##.###.###-#"; aceitaLetras = true; } else if (tipo == TipoMskTextBox.CNPJ) { aceitaLetras = false; this.Mask = "##.###.###.####-##"; } else if (tipo == TipoMskTextBox.CPF) { aceitaLetras = false; this.Mask = "###.###.###-##"; } else { aceitaLetras = false; this.Mask = "###.###.###-##"; } } private TipoMskTextBox parseStringTipoMskTextBox(string Valor){ if (Valor == "CNPJ") { return TipoMskTextBox.CNPJ; }else if(Valor == "CPF"){ return TipoMskTextBox.CPF; } else if (Valor == "RG") { return TipoMskTextBox.RG; } else { return TipoMskTextBox.DEFAULT; } } private string parseTipoMskTextBoxString(TipoMskTextBox Valor) { if (Valor == TipoMskTextBox.CNPJ) { return "CNPJ"; } else if (Valor ==TipoMskTextBox.CPF ) { return "CPF"; } else if (Valor == TipoMskTextBox.RG) { return "RG"; } else { return "DEFAULT"; } }
protected override void OnKeyPress(KeyPressEventArgs e) { base.OnKeyPress(e);
string s = "'!@¨&*()+=}][{´`~^?|\\;:ºª¹²³£¢¬º¿®½¼»"; if (s.Contains(e.KeyChar.ToString())) { e.KeyChar = char.MinValue; e.Handled = true; return; }
if (!this.aceitaLetras && char.IsLetter(e.KeyChar)) { e.KeyChar = char.MinValue; e.Handled = true; return; }
if (!this.aceitaLetras && e.KeyChar == 95) { e.KeyChar = char.MinValue; e.Handled = true; return; } } private void InitializeComponent() { this.SuspendLayout(); this.ResumeLayout(false); } }}
02/09/2010
Vinicius Vieira
não consegui colocar a imagem pq não tenho url.Mas acho que você vai conseguir fazer qualquer coisa me pergunta.
02/09/2010
Danielson Sousa
Cara obg, vou testa aqui e qualquer coisa lhe pergunto...
02/09/2010
Vinicius Vieira
Não esqueça de marcar o tópico como respondido, se der tudo certo ;DAbraços