Ajouter une propriété à un objet

cs_VinceVG 222 Messages postés mercredi 8 septembre 2004Date d'inscription 30 mars 2016 Dernière intervention - 16 nov. 2015 à 19:49 - Dernière réponse : NHenry 14229 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 14 juillet 2018 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

6 réponses

Whismeril 11797 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 juillet 2018 Dernière intervention - 16 nov. 2015 à 20:02
0
Merci
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.
Whismeril 11797 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 juillet 2018 Dernière intervention - 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
Commenter la réponse de Whismeril
NHenry 14229 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 14 juillet 2018 Dernière intervention - 16 nov. 2015 à 20:07
0
Merci
Tu peux avoir cela en dérivant (héritage) la classe TextBox, pour ensuite lui donner le comportement désiré.
Commenter la réponse de NHenry
cs_VinceVG 222 Messages postés mercredi 8 septembre 2004Date d'inscription 30 mars 2016 Dernière intervention - 16 nov. 2015 à 20:38
0
Merci
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 ?
Whismeril 11797 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 juillet 2018 Dernière intervention - 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?
NHenry 14229 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 14 juillet 2018 Dernière intervention - 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.
Commenter la réponse de cs_VinceVG

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.