Evenment clic + drag and drop sur une pictureBox

Signaler
Messages postés
6
Date d'inscription
lundi 18 août 2003
Statut
Membre
Dernière intervention
21 avril 2004
-
Messages postés
6
Date d'inscription
lundi 18 août 2003
Statut
Membre
Dernière intervention
21 avril 2004
-
J'aimerais pouvoir faire du drag and drop à partir d'un picture box (pour copier l'image) et avoir sur la même picture box un évènment click pour modifer le style des bordures.
Le but est de pouvoir à la fois faire du drag and drop et simuler la sélection du control avec le changement de style des bordures.

Le problème est que normalement les evenements sont déclenchés dans cet ordre : MouseDown, Click, MouseUp mais quand j'ai le DoDragDrop dans le MouseDown, l'évènement Click n'est jamais déclenché.

Si quelqu'un à une solution pour corriger ou contourner le problème, ca m'aiderait beaucoup !

Merci d'avance !!!!

Emilie

PS : Voici la source de mes deux évènements :

private void pbSeq_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button == MouseButtons.Left)
{
((PictureBox)sender).DoDragDrop(((PictureBox)sender).Image, DragDropEffects.Copy);
}
}

private void pbSeq_Click(object sender, System.EventArgs e)
{
if(e.Button == MouseButtons.Left)
{
if(((PictureBox)sender).BorderStyle == BorderStyle.FixedSingle)
((PictureBox)sender).BorderStyle = BorderStyle.Fixed3D;
else
((PictureBox)sender).BorderStyle = BorderStyle.FixedSingle;
}
}
A voir également:

6 réponses

Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
20
Quel interet d'avoir un click ???
Le mouseDown suffis amplement

Met tes evenements du clik dans le mouse down ou dans le up

::|The S@ib|::
MVP C#.NET
Messages postés
6
Date d'inscription
lundi 18 août 2003
Statut
Membre
Dernière intervention
21 avril 2004

J'ai déjà essayé, mais le mouse up n'est jamais declenché non plus.

Et si je mets le code du clic dans le mouse down, il reste un problème : le curseur. Quand je clique, il passe par un état propre au drag and drop (rond barré), ce qui n'est pas très "joli" !!!

Emilie
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
20
Je comprends pas le probleme.
Si tu met ce qu'il y a dans ton click dans le MouseDown avant le DoDragDrop tu n'auras pas le probleme de l'icone du drag.

De plus cet icone aparait seulement quand tu fait un mousemove normalement....

Pour le mouseUp si il n'y a pas le handler ca risque pas d'etre appeler...

Si je comprend bien ce que tu veux faire c'est :
Autoriser le Drag and Drop sur la PictureBox et en meme tant a chaque click ca change la bordure de ta PictBox ????

::|The S@ib|::
MVP C#.NET
Messages postés
6
Date d'inscription
lundi 18 août 2003
Statut
Membre
Dernière intervention
21 avril 2004

Pour le mouse up, meme avec le handler (que j'avais
mis !), c'est pas appelé quand il y a un DoDragDrop
dans le mouse down.

Ce que je veux faire :

Quand je clique sur la picture box, ca change la
bordure. Mais je veux aussi pouvoir faire un drag and
drop depuis la picture box (c'est à dire prendre
l'image de la picture pour la copier ailleurs).

Le drag and drop marche bien. Mais quand je fais juste
un clic sur la picture box, il passe par le mouse down
et donc par le DoDragDrop. Il considere donc que j
essaie de faire un drag and drop de l image de la
picture box sur elle même et modifie le curseur en
"rond barré" (puisque la picture box ne peut pas etre une destinatio du drag and drop, c l origine !).

Je voudrais eviter le passe par ce "rond barré".

Emilie
Messages postés
1
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
13 avril 2004

Bonjour,

Pourquoi ne pas déclencher ton Drag and Drop sur le MouseMove? Il te suffit alors de regarder si le bouton gauche est appuyé.

Private Sub Images_MouseMove(ByVal sender As Object, ByVal e As System.windows.Forms.MouseEventArgs)
If ((e.Button And MouseButtons.Left) = MouseButtons.Left) Then
[Drag and Drop]
End IF
End Sub 


clore
Messages postés
6
Date d'inscription
lundi 18 août 2003
Statut
Membre
Dernière intervention
21 avril 2004

Merci beaucoup, c exactement ce qu'il me fallait !!! :)

Emilie