begin process at 2008 08 22 05:15:40
1 229 775 membres
46 nouveaux aujourd'hui
14 267 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : limiter masked textboox a certains caractere [ Windows / Formulaire / Winforms / Controls ] (olibara)

limiter masked textboox a certains caractere le 05/05/2008 20:33:16

olibara
Bonjour


J'ai cherché mais sans succes

Quelqu'un sait-il s'il est possible et comment d'utiliser un maskedtextbox pour limiter l'entrée a certain caracteres

Exemple trivial :

O ou N  pour Oui / Non (Yes / No)

J'ai lu et relu la doc et je n(ai rien vu qui permettait cela
Si c'est possible c'est vraiment bien caché
Si c'et pas possible c'est vraiment tres dommage et incompréhensible

Mais dans les deux cas c'est dommage qu'une possibilité aussi triviale ne soit pas mise ern évidence

Re : limiter masked textboox a certains caractere le 05/05/2008 21:09:48

bubbathemaster
Tu peux controler les touches frappées dans ta textbox via l'evènement KeyPress

Re : limiter masked textboox a certains caractere le 05/05/2008 21:19:37

olibara
C'est bien ce que je craignais !
Dans ce cas je considere que le maskedtextbox est completement idiot et inutile

Je vais reprendre une fonction que j'ai écrite il y a vingt ans pour controler des masque d'ecran en C et VB
et qui faisait bien plus que le malheureux  masketextbox actuel

A mon avis il on du confier le concept de cela a un ingénieur qui n'a jamais utilisé un clavier !


Re : limiter masked textboox a certains caractere le 05/05/2008 22:58:03

Bidou
(Admin CS)
Réponse acceptée !
La MaskedTextBox n'est pas un Control très bien conçu, personnellement je ne l'ai presque jamais utilisé!
Cela dit, on peut lui associé des expressions régulières, donc ...



-My Blog-

Re : limiter masked textboox a certains caractere le 06/05/2008 07:06:18

olibara
Salut Bidou

Ben non justement je croyais, mais on ne peut PAS lui associer des expressions régulieres
C'est encore plus mauvais que tu ne le pense

Re : limiter masked textboox a certains caractere le 06/05/2008 08:12:53

Bidou
(Admin CS)
Ha oui on dirait bien que tu as raison...
Le mieux c'est encore de faire une validation à la main (Validator pour le web, regex avec textbox pour les winForms)



-My Blog-

Re : limiter masked textboox a certains caractere le 06/05/2008 10:12:09

sebmafate
Membre Club
(Admin CS)
tu peux toujours te servir de l'une de mes sources pour les valider : http://www.csharpfr.com/codes/WINDOWS-FORMS-VALIDATORS_43575.aspx

Sinon, je rejoins Bidou, ce contrôle est une pure d***e... impossible de saisir quelque chose correctement !


Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]

Re : limiter masked textboox a certains caractere le 06/05/2008 10:59:07

olibara
Merci a tous

J'ai aussi reçu une classe dérivée de TextBox (RegexTextBox) de Tomlev sur développez.com

Il a associé une regular expression sur TextBox je n'ai pas encore testé mais c'est en tout cas plus malin que l'original



    public class RegexTextBox : TextBox
    {
        public RegexTextBox()
        {
            regexPattern = ".*";
            regex = new Regex("^" + regexPattern + "$");
        }

        protected string regexPattern;
        protected Regex regex;

        public string RegexPattern
        {
            get { return regexPattern; }
            set
            {
                if (value != regexPattern)
                {
                    regexPattern = value;
                    regex = new Regex("^" + regexPattern + "$");
                }
            }
        }

        protected override void OnKeyPress(KeyPressEventArgs e)
        {
            if (IsInputChar(e.KeyChar) && e.KeyChar >= (char)32)
            {
                string newText = this.Text + e.KeyChar;
                if (!regex.IsMatch(newText))
                {
                    e.Handled = true;
                }
            }
            base.OnKeyPress(e);
        }

        [Browsable(false)]
        public override bool Multiline
        {
            get
            {
                return false;
            }
            set
            {
                if (value)
                    throw new NotSupportedException("RegexTextBox cannot be multiline");
            }
        }
    }


Classé sous : possible, caractere, limiter, masked, textboox

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS