|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
INDEXER DES BOUTONS
Information sur la source
Description
Je ne fais ici que retranscrire du code provenant de : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchcreatingcontrolarraysinvisualbasicnetvisualcnet.asp mais étant en anglais, celà peut rebuter certains, c'est pourquoi j'ai décidé de le retranscrire en c#
Source
- Vous créez une class nommé ButtonArray... le namespace correspondant au nom de l'application
-
- using System;
-
- namespace testindex
- {
- public class ButtonArray : System.Collections.CollectionBase
- {
- private readonly System.Windows.Forms.Form HostForm;
-
- public ButtonArray()
- {
- //
- // TODO : ajoutez ici la logique du constructeur
- //
-
- }
- public System.Windows.Forms.Button AddNewButton()
- {
- // crée une nouvelle instance de la class bouton
- System.Windows.Forms.Button aButton = new
- System.Windows.Forms.Button();
- // ajoute le bouton à la collection existante
- this.List.Add(aButton);
- // ajoute le bouton sur la form qui l'appel
- HostForm.Controls.Add(aButton);
- // initialise le composant avec les valeurs suivantes
- aButton.Top = Count * 25;
- aButton.Left = 100;
- aButton.Tag = this.Count;
- aButton.Text = "Button " + this.Count.ToString();
- // créer l'évenement clic
- aButton.Click += new System.EventHandler(ClickHandler);
- return aButton;
- }
- // Remplace le constructeur par défaut par celui-ci
- public ButtonArray(System.Windows.Forms.Form host)
- {
- HostForm = host;
- this.AddNewButton();
- }
- // récupère ou renvoie les propriété lié au bouton
- public System.Windows.Forms.Button this [int Index]
- {
- get
- {
- return (System.Windows.Forms.Button) this.List[Index];
- }
- }
- // supprime le composant
- public void Remove()
- {
- // test si il y a des boutons
- if (this.Count > 0)
- {
- // ici le code supprime le dernier bouton créer, mais vous pouvez le modifier à votre guise
- HostForm.Controls.Remove(this[this.Count -1]);
- this.List.RemoveAt(this.Count -1);
- }
- }
- // Créer l'évenement click sur le bouton avec pour teste un message
- public void ClickHandler(Object sender, System.EventArgs e)
- {
- System.Windows.Forms.MessageBox.Show("You have clicked button " +
- ((System.Windows.Forms.Button) sender).Tag.ToString());
- }
- }
- }
-
- Dans la form, dans la class principal ajoutez :
- ButtonArray MyControlArray;
-
- Dans le code il suffira de créer les boutons par :
- MyControlArray = new ButtonArray(this);
-
- et pour les boutons suivants:
- MyControlArray.AddNewButton();
-
- Pour supprimer :
- MyControlArray.Remove();
-
- On peut maintenant utilisé l'index sur le controle par MyControlArray[0].Text = "test";
Vous créez une class nommé ButtonArray... le namespace correspondant au nom de l'application
using System;
namespace testindex
{
public class ButtonArray : System.Collections.CollectionBase
{
private readonly System.Windows.Forms.Form HostForm;
public ButtonArray()
{
//
// TODO : ajoutez ici la logique du constructeur
//
}
public System.Windows.Forms.Button AddNewButton()
{
// crée une nouvelle instance de la class bouton
System.Windows.Forms.Button aButton = new
System.Windows.Forms.Button();
// ajoute le bouton à la collection existante
this.List.Add(aButton);
// ajoute le bouton sur la form qui l'appel
HostForm.Controls.Add(aButton);
// initialise le composant avec les valeurs suivantes
aButton.Top = Count * 25;
aButton.Left = 100;
aButton.Tag = this.Count;
aButton.Text = "Button " + this.Count.ToString();
// créer l'évenement clic
aButton.Click += new System.EventHandler(ClickHandler);
return aButton;
}
// Remplace le constructeur par défaut par celui-ci
public ButtonArray(System.Windows.Forms.Form host)
{
HostForm = host;
this.AddNewButton();
}
// récupère ou renvoie les propriété lié au bouton
public System.Windows.Forms.Button this [int Index]
{
get
{
return (System.Windows.Forms.Button) this.List[Index];
}
}
// supprime le composant
public void Remove()
{
// test si il y a des boutons
if (this.Count > 0)
{
// ici le code supprime le dernier bouton créer, mais vous pouvez le modifier à votre guise
HostForm.Controls.Remove(this[this.Count -1]);
this.List.RemoveAt(this.Count -1);
}
}
// Créer l'évenement click sur le bouton avec pour teste un message
public void ClickHandler(Object sender, System.EventArgs e)
{
System.Windows.Forms.MessageBox.Show("You have clicked button " +
((System.Windows.Forms.Button) sender).Tag.ToString());
}
}
}
Dans la form, dans la class principal ajoutez :
ButtonArray MyControlArray;
Dans le code il suffira de créer les boutons par :
MyControlArray = new ButtonArray(this);
et pour les boutons suivants:
MyControlArray.AddNewButton();
Pour supprimer :
MyControlArray.Remove();
On peut maintenant utilisé l'index sur le controle par MyControlArray[0].Text = "test";
Conclusion
Si vous voulez plus d'information hésitez pas à aller sur msdn, il est fait pour ça.
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Conversion string[,] depuis System.Array [ par el_teedee ]
Bonjour, tout est dans le titre, je récupère un System.Array qui, par exemple est un tableau de string [5,3] : [1,1] [1,2][1,3]... [5,1] [
Stockage de la date sytème dans un tableau [ par Shany ]
Salut tout le monde,Je code avec Visual studio .net en C#. J'ai un petit problème. J'aimerais pouvoir stocker ma date système dans un tablea
Array en readonly [ par Julien237 ]
Bonjour,J'ai une propriété de ma classe qui est un tableau de float, j'aurais voulu que l'utilisateur puisse toujours avoir accès à ces informations,
Array.Sort() [ par engelho ]
Bonjour,Je possède un un tableau que je souhaite trier. Toutefois ce tableau comprend des objets...J'ai implémenté la fonction CompareT
indexer les TextBox [ par bellak ]
Salut tt le monde ;j'ai un petit soucis , mon form contient plusieurs TextBox et un bouton , et je veux que si je clique sur le bouton tout les TextBo
array string tableau["toto"] donne "titi" C# [ par sh4gm4 ]
Salut,je cherche a faire la même chose que le post ci-dessous,mon problème, c'est que la reponse ne marche pas chez moi ! quelqu'un aurait une idée du
Array.Sort sur un tableau de structure [ par MAQFAB ]
Bonjour à tous et à toutes,J'essaye d'utiliser la fonction Array.Sort d'une manière un peu poussée, et je ne m'en sors pas.Considérons une structure :
MDI Form parent avec control bouton [ par seb123 ]
Bonjour,Je voudrai placer un bouton sur une MDI form parent mais quand j'ouvre une MDI form child le bouton apparait en premier plan devant la MDI chi
taille d'un tableau [ par some_one ]
Bonjour Je connaitre la dimension (nombre de cases) d'un tableau nommé "words".string[] words = ligne.Split('/');Ya til une fonction qui permet de fai
Passer un tableau en paramètre [ par Topnotch ]
Bonjour,j'aimerais savoir comment passer un tableau de string ,(ArrayList) plus précisement, à une fonction. Voici mon code:public ArrayList LireTable
|
Téléchargements
Logiciels à télécharger sur le même thème :
|