cs_Bidou
Messages postés5486Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 2013
-
13 mai 2005 à 10:21
cs_Bidou
Messages postés5486Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 2013
-
13 mai 2005 à 12:08
Bonjour,
J'ai créée une méthode récursive qui me premets de prendre tous les controls d'un sous control et d'y faire une certaine opération. En l'occurance, je m'intéresse seulement au textBox, et donc je fais un test avec le mot clef 'as' (j'ai aussi essayé avec 'is') pour savoir si le control actuel que je test est une textbox. Seulement voila, à ma grande surprise, il n'y a pas seulement les textBox qui passent le filtre, mais aussi les numericUpDown. Pourtant, ces classes n'ont rien en commun, si ce n'est qu'elle dérive les deux de la class Control... (pour être sur, j'ai setté le backColor à Red, et tout les Controls rouge de ma form sont bien les Textbox et les NumericUpDown).
Comment faire pour avec uniquement les TextBox? (j'aimerais pas devoir faire un test sur le nom du Control, ou sur une property similaire (tag)).
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 13 mai 2005 à 11:32
c'est une explication qui me plait bien...
il faut que tu modifies ton code comme ceci :
public static void ClearAll(Control cont)
{
foreach(Control c in cont.Controls)
{
if(c.HasChildren && !(c is NumericUpDown)
) ClearAll(c);
else
{
if(c is TextBox) // aussi essayé avec 'as', le cast fonctionne !
{
((TextBox)c).BackColor = Color.Red;
}
}
}
}
private void Form1_Load(object sender, System.EventArgs e)
{
// Remarnque : this est ma form actuelle
ClearAll(this);
}