begin process at 2012 02 04 09:50:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > INDEXER DES BOUTONS

INDEXER DES BOUTONS


 Information sur la source

Note :
7 / 10 - par 3 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Source .NET ( DotNet ) Classé sous :bouton, indexer, tableau, array Niveau :Débutant Date de création :23/01/2005 Vu :8 255

Auteur : tmcuh

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 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

Source .NET (Dotnet) MISE À JOUR BDD PROVENANT D'UN DATAGRID

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) DIFFÉRENTIELLE ENTRE DEUX COLLECTION par morphey_83
Source avec Zip Source avec une capture Source .NET (Dotnet) RICHTEXTBOX POUR COLORATION SYNTAXIQUE EN TEMPS REEL par Renfield
Source avec Zip Source avec une capture Source .NET (Dotnet) TRANSFORMER UN PROGRAMME EN SERVICE par xavh44
Source avec Zip Source .NET (Dotnet) [C# ET T4] TEMPLATE DE VIEW MODEL POUR LE PATTERN MVVM par Kite37
Source .NET (Dotnet) EXEMPLE D'UTILISATION D'UN OCX SANS DECLARATION PREALABLE DA... par yohan49

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) CONTRÔLES : BOUTON, LISTE ET PANNEAU POUR VOS APPLIS par Mokost
Source avec Zip SILVERLIGHT 4: BOUTON À 3 IMAGES par BumpMANN
Source avec Zip Source avec une capture SODOKU MUSING (PERMUTATION & SODOKU) par krissssss
Source avec Zip Source avec une capture Source .NET (Dotnet) THREAD, COMPOSANTS DYNAMIQUES, ASTUCES DE WINFORM par dadamagouil
Source avec Zip Source .NET (Dotnet) MODIFICATION DYNAMIQUE DE LA TAILLE D'UN TABLEAU par Zebiloute

Commentaires et avis

Commentaire de cssiste le 29/03/2005 03:26:25

bonjour,je voudrais bien avoir un exemple en C# qui illustre un bouton et un label.Lorsquon clique sur  le bouton on exécute une requete SQL (SGBD:sql server)qui calcule par exemple le nombre d'abonnés dans un réseau et d'affecter la valeur sortie dans le label.
j'attend votre aide merci

Commentaire de tmcuh le 29/03/2005 18:50:30

mdrrr en fonction de la température t'as oublié... retente ta requete sur le forum ;)

PS : merci à celui qui m'as mis 1/10 sans mettre de commentaire

Commentaire de fred65200 le 25/06/2005 00:43:43

Salut, je débute en C# et depuis quelques jours je cherchais un exemple concret et complet de création dynamique de linkLabel. Ta retranscription m'a bien aidé. Je t'avoue que je suis aller sur MSDN pour reprendre le tut. les étapes et le fonctionnement du code y est bien détaillé.
Merci.

Commentaire de tmcuh le 26/06/2005 20:31:59

Merci, au moins il a servi à quelqu'un :) ... sinon tu peux tenter de passer en framework 2.0 qui permet si on me l'a bien renseigné l'indexation par les propriétés; et non par un artifice. Beaucoup de monde vient du vb et c'est pour celà que j'ai rajouté cette article ;)

PS : si tu repasse tu peux toujours mettre un note ça fait toujours plaisir :p

Amicalement tmcuh

Commentaire de fred65200 le 27/06/2005 04:12:42

Salut, sympa de répondre. En effet je programmais en VB et surtout en VBA. En C#, pour l'instant, je patauge un peu. As tu un bouquin d'initiation à me conseiller?
Fred65200

Commentaire de tmcuh le 27/06/2005 17:21:55

salut, pour le bouquin j'ai pris "langage c#" de microsoft... pas mal fait mais manque l'ADO, sinon tu peux allé faire un tour sur le site de l'école (ou j'étais), le prof avez mis sont cours : http://www.hesit.be/resumes.php?branche=info&annee=3&type=1

amicalement echo

Commentaire de fred65200 le 27/06/2005 17:24:49

Merci, je materai cela ce soir
@+

Commentaire de hamouda1tn le 16/07/2006 10:31:09

merci pour cette source
c super

Commentaire de lagoelle le 15/12/2006 19:35:38

Excellente initiative ! Merci beaucoup de penser au "développeur du dimanche" ;-)

 Ajouter un commentaire


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&#233;cup&#232;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&#232;me. J'aimerais pouvoir stocker ma date syst&#232;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&#232;de un un tableau que je souhaite trier. Toutefois ce tableau comprend des objets...J'ai impl&#233;ment&#233; 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,061 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales