Evenment clic + drag and drop sur une pictureBox

mimi2610 Messages postés 6 Date d'inscription lundi 18 août 2003 Statut Membre Dernière intervention 21 avril 2004 - 23 mars 2004 à 18:22
mimi2610 Messages postés 6 Date d'inscription lundi 18 août 2003 Statut Membre Dernière intervention 21 avril 2004 - 13 avril 2004 à 16:32
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

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
23 mars 2004 à 20:59
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
0
mimi2610 Messages postés 6 Date d'inscription lundi 18 août 2003 Statut Membre Dernière intervention 21 avril 2004
23 mars 2004 à 21:55
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
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
24 mars 2004 à 01:06
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
0
mimi2610 Messages postés 6 Date d'inscription lundi 18 août 2003 Statut Membre Dernière intervention 21 avril 2004
25 mars 2004 à 19:19
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
0

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

Posez votre question
zecyp Messages postés 1 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 13 avril 2004
13 avril 2004 à 15:45
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
0
mimi2610 Messages postés 6 Date d'inscription lundi 18 août 2003 Statut Membre Dernière intervention 21 avril 2004
13 avril 2004 à 16:32
Merci beaucoup, c exactement ce qu'il me fallait !!! :)

Emilie
0
Rejoignez-nous