Accueil > > > INDEXER DES BOUTONS
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/vbtchcreatingcont rolarraysinvisualbasicnetvisualcnet.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
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
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 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 et clef, referencement [ par l0r3nz1 ]
Bonjour, il doit pouvoir exister en c# comme il existe en PHP un systeme pour connaître une donnée selon une clef, mais je n'ai pas trouvé! En PHP, o
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
supprimer 1 ligne <tr> d'un tableau HTML avec un bouton C# [ par mimijesss ]
Bonjour tout le monde, Je travaille actuellement sur le développement d'un formulaire en ligne à l'aide d'une Web Part C# avec le moteur WSS 3.0 sp2 e
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
|
Derniers Blogs
MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril SHAREPOINT 15 TECHNICAL PREVIEW MANAGED OBJECT MODEL SOFTWARE DEVELOPMENT KITSHAREPOINT 15 TECHNICAL PREVIEW MANAGED OBJECT MODEL SOFTWARE DEVELOPMENT KIT par Matthew
http://www.microsoft.com/download/en/details.aspx?id=28768&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+MicrosoftDownloadCenter+(Microsoft+Download+Center) ...
Cliquez pour lire la suite de l'article par Matthew
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|