Méthode generique label

Résolu
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 - 9 sept. 2009 à 14:47
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre 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!

5 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 sept. 2009 à 19:03
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
3
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
10 sept. 2009 à 17:58
Mais que demander de plus... Merci beaucoup
0
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
11 sept. 2009 à 09:51
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!
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
11 sept. 2009 à 10:17
Oui, et c'est quoi le problème dans ce cas ?


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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
11 sept. 2009 à 11:01
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 
0
Rejoignez-nous