Criar uma proprieade....

.NET

28/08/2010

Boa Noite Galera, eu estava procurando alguma forma de criaar alguma propriedade... Ex.: Eu Criação textbox e nesse textbox e ter com criar a faciliadade de usar ele com CPF, CNPJ, TELEFONE. Como se fosse o mask... mais tudo implementado antes, ai eu so faria a seleção nas propriedade do controle...     Se tiver como e fico grato pela ajuda...   Vlw
Danielson Sousa

Danielson Sousa

Curtidas 0

Respostas

Vinicius Vieira

Vinicius Vieira

28/08/2010

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);        }    }}

 
GOSTEI 0
Vinicius Vieira

Vinicius Vieira

28/08/2010


  não consegui colocar a imagem pq não tenho url.Mas acho que você vai conseguir fazer qualquer coisa me pergunta.
GOSTEI 0
Danielson Sousa

Danielson Sousa

28/08/2010

Cara obg, vou testa aqui e qualquer coisa lhe pergunto...
GOSTEI 0
Vinicius Vieira

Vinicius Vieira

28/08/2010

Não esqueça de marcar o tópico como respondido, se der tudo certo ;DAbraços
GOSTEI 0
POSTAR