Ajout de boutons

[Résolu]
Signaler
Messages postés
24
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
10 août 2007
-
Messages postés
108
Date d'inscription
vendredi 11 juillet 2003
Statut
Membre
Dernière intervention
27 novembre 2007
-
Bonjour, j'aimerai ajouter par exemple un ou plusieurs Labels ou boutons, par le clic d'un seul bouton. Quelqu'un saurait il comment faire?? merci...
OxN

8 réponses

Messages postés
108
Date d'inscription
vendredi 11 juillet 2003
Statut
Membre
Dernière intervention
27 novembre 2007

Si tu veux parcourir les différents contrôles enfants, pour rechercher un label nommé "lbl3" :

foreach (Control ctl in Controls)

{

if (ctl is Label && ctl.Name = "lbl3")

{

ctl.BackColor = Color.Red;

break;

}

}

-- AOGie --
Messages postés
108
Date d'inscription
vendredi 11 juillet 2003
Statut
Membre
Dernière intervention
27 novembre 2007

Tu crées une nouvelle instance de bouton ou d'étiquette puis tu ajoutes
cette instance à la propriété "Controls" du container associé.

Ex :

Button btn = new Button();

btn.Location = ...;

btn.Size = ...;

//paramétrage éventuel d'autres propriétés du bouton



//prise en compte

Controls.Add(btn);

-- AOGie --
Messages postés
24
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
10 août 2007
1
merci ca marche nikel, mais ca me pose un autre problème,je clique sur un bouton qui me créé des labels et j'ai defini:
lbl.Name = lbl+Numero;
numero étant un compteur afin d'avoir des noms différents pour chaque label créé.(ex; lbl1, lbl2,.....)
le problème est comment agir sur des labels qui n'ont meme pas encore été créés?
forcément qd j'ecris un code pour effectuer une action sur lbl3, on va me dire qu'il n'existe pas. Y'aurait-il une solution Svp?? merci..
Messages postés
108
Date d'inscription
vendredi 11 juillet 2003
Statut
Membre
Dernière intervention
27 novembre 2007

Mais que souhaites-tu faire comme action sur ces labels non créés ?

Si c'est pour s'inscrire sur un événement tu choisis un nom générique pour tous les labels que tu crées à la volée. Ex :

lbl1.Click += new EventHandler(Label_Click);

lbl2.Click += new EventHandler(Label_Click);

lbl3.Click += new EventHandler(Label_Click);



Ensuite, tu castes le sender en Label pour effectuer une action sur le label à l'origine de l'événement.



private void Label_Click(object sender, EventArgs e)

{

Label lbl = (Label)sender;

lbl. ...; //action sur lbl1, lbl2 ou lbl3

}

-- AOGie --
Messages postés
24
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
10 août 2007
1
ce que je voulai faire c'est par exemple en cliquant sur un bouton, mettre lbl3 en rouge, mais lbl3 n'existe pas dans momn code puisqu'il n'a pas été créé!!
private void test_Click(object sender, System.EventArgs e)
{
l

}
Messages postés
24
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
10 août 2007
1
ce que je voulai faire c'est par exemple en cliquant sur un bouton, mettre lbl3 en rouge, mais lbl3 n'existe pas dans momn code puisqu'il n'a pas été créé!!

private void test_Click(object sender, System.EventArgs e)
{
lbl3.BackColor= Color.Red;
}
---> ca ca passe pas dans mon code puisque lbl3 est encore inconnu.

Au secour SVP je suis perdu!! merci

OxN
Messages postés
24
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
10 août 2007
1
au secouuuuuuuur!!
Messages postés
24
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
10 août 2007
1
y'aurait'il un moyen de prendre le contenu d'une variable pour agir dessus comme si'c'étai un nom d'un label??

par exemple Toto="lbl3"

private void test_Click(object sender, System.EventArgs e)
{
[Toto.Text].backcolor= Color.Red;
}
Ca ça ne marche pas mais existe t'il une autre syntaxe pour faire un truc du genre Please? merci..