Bonjour,

j'aimerai développer un composant qui permettrait de choisir le type de données parmi "entier", "booleen", "string", "float", etc.
Par exemple, si le développeur en configurant le composant choisit le type de données "entier", la valeur saisie par l'utilisateur ne pourra être que des entiers.
J'ai commencé par développer une classe dérive de la class textbox et dans laquelle j'ai mis le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class TextBoxCustom:TextBox
    {
 
        public TextBoxCustom()
        {   
            this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
        }
 
        private void verifNumeriqField(object sender,KeyPressEventArgs e)
        {
            // stoque le séparateur décimal du système
            char Separateur = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator[0];
            // dans le cas de l'ecriture d'un séparateur
            if ((e.KeyChar == '.') || (e.KeyChar == ','))
            {
                // Force l'ecriture du bon séparateur
                e.KeyChar = Separateur;
            }
 
            if (!char.IsDigit(e.KeyChar))
            {
                if ((e.KeyChar != '.') && (e.KeyChar != ','))
                {
                    // Tous les caractères non numériques ne sont pas traités sur le TextBox.
                    e.Handled = true;
                }
            }
        }
 
        private void _KeyPress(object sender, KeyPressEventArgs e)
        {
            verifNumeriqField(sender,e);
        }
 
        private void InitializeComponent()
        {
            this.SuspendLayout();
            this.ResumeLayout(false);
 
        }
    }
Le code suivant serai utilisable dans le cas où le datatype est float.
Que pensez-vous de ce code ?

N'y a-t-il pas moyen de faire autrement que de définir l'évenement keypress ?

Comment faire ensuite pour que l'utilisateur choisisse dans les propriétés du control dans une liste déroulante, les différents type cités précédemment ?

Comment faire aussi pour qu'en fonction du type choisi dans la liste déroulante, la valeur défini dans la propriété textbox soit du type choisi ?

Merci d'avance pour vos suggestions, parce que je ne sais pas ce que vous en pensez mais moi je trouve ça assez interessant comme composant.
++