Bonjour,
J'écris une petite classe pour lister tous les contrôles posés sur un formulaire.
Pour chacun, je cherche à savoir si la propriété Text est disponible.
private bool ProprieteExiste(Control ctrl, string nomPropriete)
{
Type tp = ctrl.GetType();
PropertyInfo p = tp.GetProperty(nomPropriete, typeof(string));
return !(p == null);
}
private void button1_Click(object sender, EventArgs e)
{
foreach (Control cp in this.Controls)
MessageBox.Show(String.Format(" {0} {1}", cp.Name, ProprieteExiste(cp, "Text")));
}
Le problème c'est que ma fonction me renvoie toujours vrai alors que j'ai posé des contrôles pour lesquels cette propriété n'existe pas.
Pour tester, j'ai posé un PropertyGrid et j'ai testé la propriété ToolbarVisible.
J'ai bien une réponse mais cette fois, à faux pour tous les contrôles.
On dirait que mon code renvoie toujours la première valeur trouvée.
Mais si c'est ça, c'est un mystère pour moi.
Un p'tit coup de main svp ...
J-L
Partager