babaOrhumette
Messages postés104Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention 7 avril 2019
-
7 mars 2011 à 21:47
babaOrhumette
Messages postés104Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention 7 avril 2019
-
8 mars 2011 à 19:07
Bonjour,
Voilà j'ai un petit problème que je n'arrive pas à résoudre, j'ai fait des recherches sur google sans succès.
Je vais essayer d'être la plus claire possible.
J'ai un nombre/chiffre N, compris entre 1 à 20 qui apparait dans une textbox, de ce N je voudrai que la pictureBoxN devienne null .
C'est à dire :
- si la textbox donne 3, la pictureBox3.Image = null;
- si la textbox donne 7, la pictureBox7.Image = null;
Je ne sais pas si je me fais bien comprendre.
Merci de votre attention et bonne soirée.
A voir également:
Picturebox, apelle celle qui est donnée dans une textbox
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 8 mars 2011 à 14:47
Salut
Tu as plusieurs solutions :
- La première, la plus propre et la plus performante, c'est de faire un tableau de pictureBox.
PictureBox[] tableau = new PictureBox[20];
// Puis initialisation des éléments du tableau, et ensuite tu peux faire ça :
tableau[Convert.ToInt32(textBox1.Text)].Image = null;
- La deuxième, qui ne fonctionne qu'avec WinForms, c'est d'accéder au contrôle par son nom.
- La dernière, qui fonctionne dans tous les cas A CONDITION QUE L'ELEMENT EN QUESTION SOIT PUBLIC (donc il faudrait mettre toutes tes PictureBoxX public, mais qui n'est ni performante ni simple, c'est d'utiliser la réflexion.
// En haut, dans les using, tu ajoutes
using System.Reflection;
// Là où tu veux modifier la propriété
// On commence par récupérer le type de ta fenêtre
Type t = this.GetType();
// On prépare la recherche d'un champ public nommé comme tu veux
FieldInfo fi = t.GetField("pictureBox" + textBox1.Text);
// On récupère le champ de la fenêtre actuelle et on modifie la valeur
((PictureBox)fi.GetValue(this)).Image = null;
La dernière solution est intéressante à connaître, mais à éviter tant que possible pour des raisons de performance (mais elle est parfois indispensable).
Krimog : while (!(succeed = try())) ; - Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -