begin process at 2010 02 09 21:06:35
  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 :7 140

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 une capture Source .NET (Dotnet) AJOUTER DES BYTES À UN EXECUTABLE par t0fx
Source .NET (Dotnet) COPIER/ COLLER DATAGRID (COPY/PASTE) par jamesbidon
Source avec Zip Source .NET (Dotnet) MECANISME DE SYNCHRONISATION DE THREAD - MONITOR, MUTEX, SEM... par jesusonline
Source .NET (Dotnet) EVENTHANDLERS GÉNÉRIQUES par ricklekebekoi
Source avec Zip Source .NET (Dotnet) TRAITER UN FOREACH EN PARALLÈLE par maitredede

 Sources en rapport avec celle ci

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 avec une capture Source .NET (Dotnet) COMPOSANT BOUTONS AVEC REFLETS par yodaben
Source avec Zip Source .NET (Dotnet) BOUTON SURVOL TOUT SIMPLE par bestmomo
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é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, 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() [ 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 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 Ellipse & zone réactive [ par ychachia ] Bonjour, j'ai un problême avec mon application. Pour l'instant, lorsqu'on clique sur la form, cela dessine un cercle (qui est stocké dans un


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 0,874 sec (4)

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