Bonjour,
Je veux réaliser une fonction qui attend un événement souris (click) si l'événement click est déclenché alors elle récupère le contrôle pointé par la souris.
avez vous une idée?
Merci de votre aide
Bonjour,
Je veux réaliser une fonction qui attend un événement souris (click) si l'événement click est déclenché alors elle récupère le contrôle pointé par la souris.
avez vous une idée?
Merci de votre aide
Bonjour,
A quel niveau ce situe ton problème ?
Tu as un evenement click qui as comme parametre les coordonnées de ton click.
Apres tu as juste a retrouver quel element ce trouve a cette endroit.
A bientôt
Bonjour wakan,
J'ai ma fonction qui relie deux contrôles par une ligne
Si l'utilisateur veut créer une ligne entre deux contrôles (visible) il clic tout simplement sur le premier contrôle puis sur le deuxième.
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part DessinerLigne(Control cnt1, Control cnt2)
j'ai implémenté une solution qui fonctionne mais je pense pas qu'elle est pratique
J'ai déclaré 3 variables globales
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private Control MonPremierControl private Control MonDeuxiemeControl bool dessiner =false;
et dans événement click
je teste la variable dessiner :
dessiner =faux: il s'agit de premier clic alors je récupère le contrôle cible et je le sauvegarde dans la variable MonPremierControl après je mets dessiner à false
dessiner =vrais: il s'agit de deuxième clic alors j'appelle la fonction DessinerLigne(MonPremierControl,MonDeuxiemeControl) et je mets la variable dessiner à false (cette fonction marche bien).
Mais maintenant je me demande s'il y a une possibilité de changer ma fonction de telle manière j'utilise une méthode qui récupère le contrôle qui déclenche un événement click;
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DessinerLigne(Get_Control(),Get_Control());//appelle de la fonction
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 private Control Get_Control() //le corps de la fonction { //rester en écoute jusqu'à un événement click sera détecté //récupérer l'objet }
Remarque:
si je dis n'importe quoi parc que c'est mon 15ém jour et 3 heurs avec C#
de me corriger le chemin si je suis OUT
Je ne suis pas sur de comprendre ce que tu veux, tu veux un évènement click qui appelle une fonction avec tes deux derniers contrôles cliqué en paramètre? Ca me semble pas possible, ou plus longue à implémenter que ta solution actuelle.
La suite ne concercne peut-être pas ce que tu demandes mais je pense que tu pourrais te passer du booléen dessiner en regardant MonPremierControl
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if ( MonPremierControl == null ) MonPremierControl = control ; else { DessinerLigne(...); MonPremierControl = null; }
salut,
tu peux toujours créer des fonctions qui catch le clic de ta souris sur chaque controle "clicable"
ensuite tu détermines dans des variables le nom des controles et leurs position
Salut,
J'essaie de deviner ce que tu veux faire en vrai, je suppose que c'est une fenetre pour definir un genre de mapping. Bref là où je veux en venir, c'est que tes controles sont tres probablement les memes (des textbox peut etre ?)
Si c'est le cas, je te propose une implementation de ce style :
Bon courage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 for (int i = 1; i <= nbControls; i++) { TextBox tb = new TextBox(); tb.Name = "MaTextBox" + i; tb.Location = new Point(la_ou_tu_veux); ///TODO: rajouter des propriétés aux TextBox... tb.Click += new EventHandler(tb_Click); } void tb_Click(object sender, EventArgs e) { string nomControlClicke = ((TextBox)sender).Name; }
Titip
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager