Méthode generique label [Résolu]

Messages postés
707
Date d'inscription
jeudi 5 mai 2005
Dernière intervention
5 janvier 2010
- 9 sept. 2009 à 14:47 - Dernière réponse :
Messages postés
707
Date d'inscription
jeudi 5 mai 2005
Dernière intervention
5 janvier 2010
- 11 sept. 2009 à 11:01
Bonjour à tous,

une petite question car j'ai du mal à cerner le concept. Je bosse avec c# sur vs 2008 et j'utilise Blend pour le design.

Alors voilà, je crée un userControl dans lequel je peux rajouter dynamiquement des Labels. Ensuite les deux questions sont les suivantes :

1/ Comment récupérer le label sur lequel j'effectue mon clic droit?

2/J'aimerais créer une méthode valable pour tous les labels que je vais créer, qui me permet de savoir si la souris passe dessus (un mouseEnter générique en fait)


MErci pour votre aide et bonne journée!
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
- 9 sept. 2009 à 19:03
3
Merci
Pour les 2 questions la réponse est identique :

Lorsque tu crée dynamiquement des contrôles, il faut ensuite que tu abonne les évènements de ces contrôles que tu veux gérer à des méthodes dites gestionnaire d'évènements.

Tu crée d'abord les méthodes :
pour le click :
	private void MesLabels_Click(object sender, EventArgs e)
{
}

pour le MouseEnter :
        private void MesLabels_MouseEnter(object sender, System.EventArgs e) 
        {
        }


Ensuite lorsque tu crée dynamiquement ton label, après lui avoir donner un nom, tu l'abonne ses évènements :
TonLabel.Click += new System.EventHandler(this.MesLabels_Click);
TonLabel.MouseEnter += new System.EventHandler(this.MesLabels_MouseEnter);

Dans tes gestionnaires d'évènement, sender.name te donnera le nom du label qui aura déclenché l'évènement



[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_casy
Messages postés
707
Date d'inscription
jeudi 5 mai 2005
Dernière intervention
5 janvier 2010
- 10 sept. 2009 à 17:58
0
Merci
Mais que demander de plus... Merci beaucoup
Commenter la réponse de tof008
Messages postés
707
Date d'inscription
jeudi 5 mai 2005
Dernière intervention
5 janvier 2010
- 11 sept. 2009 à 09:51
0
Merci
Suite à la discussion, petit probleme :

je crée mes méthodes pour un glisser déposer sur un userControl que je crée avec un clic sur un bouton. Je crée donc un nouveau userControl a chaque clic et j'aimerais pouvoir beneficier du glisser déposer sur chacun d'eux.

Je crée donc ces trois méthodes :
  	private void Postit_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            isDragging = true;
            controlPoint = new Point(Canvas.GetLeft(sender), Canvas.GetTop(sender));
            mousePoint = new Point(System.Windows.Input.Mouse.GetPosition(this).X, System.Windows.Input.Mouse.GetPosition(this).Y);

        }

        private void Postit_MouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {

            isDragging = false;
        }

        private void Postit_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
        {
          
            if (isDragging == true)
            {
                newMousePoint = new Point(System.Windows.Input.Mouse.GetPosition(this).X, System.Windows.Input.Mouse.GetPosition(this).Y);
                Canvas.SetLeft(sender, (controlPoint.X + newMousePoint.X - mousePoint.X + 10));
                Canvas.SetTop(sender, (controlPoint.Y + newMousePoint.Y - mousePoint.Y + 10));
               
            }
        }

Merci pour votre aide!
Commenter la réponse de tof008
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
- 11 sept. 2009 à 10:17
0
Merci
Oui, et c'est quoi le problème dans ce cas ?


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Commenter la réponse de cs_casy
Messages postés
707
Date d'inscription
jeudi 5 mai 2005
Dernière intervention
5 janvier 2010
- 11 sept. 2009 à 11:01
0
Merci
le problème c'est que je ne peux réaliser mon glisser déposer que sur le dernier Composant que j'ai crée. Si je veux reprendre un composant déjà posé, c'est le dernier crée qui bouge!!! Plutôt embêtant.



                             Noubliez pas de lire le REGLEMENT 
Commenter la réponse de tof008

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.