Ajouter une propriété à un objet

cs_VinceVG Messages postés 221 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 30 mars 2016 - 16 nov. 2015 à 19:49
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 16 nov. 2015 à 22:42
Bonjour,
Je souhaite ajouter une propriété "Numeric" à un textbox. Cette propriété serait binaire par défaut à false et si on la met à true elle ne permet que la saisis de nombre. Je sais déjà faire avec l'événement on keypress.

private void textBoxReel_KeyPress(object sender, KeyPressEventArgs e)
{
string Caractère = e.KeyChar.ToString();

if (!(char.IsNumber(e.KeyChar)|| Caractère.Equals(",")|| Caractère.Equals(" ") || Caractère.Equals("-")))
//Vérifie si le caractère est un nombre ou une virgule un espace ou le -
{
toolTipCaracNum.Show("Seuls les caractères numériques sont acceptés dans cette zone.",textBoxReel,3000);
e.Handled = true;//Valide l'action se qui fait quele caractère est considéré comme traité et ne sera pas affiché

}
}

Par contre même si je programme depuis des décennies dans plein de code différent je suis débutant en C# ; merci donc de me donner des explications pour débutant.

3 réponses

Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
16 nov. 2015 à 20:02
Bonjour,

tu ne peux pas ajouter une propriété à un objet dont tu n'as pas le code.

Par contre, tu peux le dériver et ajouter cette propriété à l'enfant.
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
16 nov. 2015 à 20:37
Par contre si tu as juste besoin d'une info quelconque (dont booléenne) tu peux utiliser la propriété Tag
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
16 nov. 2015 à 20:07
Tu peux avoir cela en dérivant (héritage) la classe TextBox, pour ensuite lui donner le comportement désiré.
0
cs_VinceVG Messages postés 221 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 30 mars 2016
16 nov. 2015 à 20:38
Merci.
J'ai aussi essayé ça sans succés.
J'ai fais plein d'essais avec les codes que j'ai trouvé sur ce site et sur MSDN, et ils sont nombreux.
J'ai donc créé une classe NumericBox qui dérive de la classe textbox comme dans ce code "http://codes-sources.commentcamarche.net/source/31894-textbox-numerique", mais je ne vois jamais apparaître l'outil numericbox dans la boite à outil.
Je n'ai pas osé déterré cette discussion je suis en VS2015.
Quand il est dit de créer une classe dans le projet. Ca veut dire au niveau de la solution ou au niveau en dessous ?
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
16 nov. 2015 à 21:55
Nos messages se sont croisés, as tu essayé avec Tag?

Peux tu poster le code de la classe dérivée?
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
16 nov. 2015 à 22:42
Pour ajouter le contrôle, il faut le marquer avec un attribut :
https://social.msdn.microsoft.com/Forums/en-US/bdd57212-4422-47b6-8a43-79ebdc80d209/how-to-keep-custom-controls-in-the-toolbox-please
C'est un exemple en VB.NET, mais si à la place des <> tu mets des [], ça passe.
0
Rejoignez-nous