MouseDown + MouseMove problem c#

Permalänk
Medlem

MouseDown + MouseMove problem c#

Jag har problem att få mousemove att fungera medans man trycker ner den vänstra musknappen, d.v.s MouseMove körs aldrig. MouseDown och Mouseup fungerar däremot.
Så någon som vet hur man ska få mousemove att "trigga" medans vänstra musknappen är nertryckt?

Säg till om ni vill ha mer av koden

private void ItemMouseDown(object sender, MouseEventArgs e) { int ID; if (sender.GetType() == typeof(Label)) { Label lbl = sender as Label; ID = Convert.ToInt32(lbl.Name); } else { PictureBox pb = sender as PictureBox; ID = Convert.ToInt32(pb.Name.TrimStart('p')); } itemBeingDragged = ID; this.MouseMove += new MouseEventHandler(ItemDragged); } private void ItemDragged(object sender, MouseEventArgs e) { MessageBox.Show("ItemDragged: " + itemBeingDragged.ToString()); } private void ItemMouseUp(object sender, MouseEventArgs e) { int ID; if (sender.GetType() == typeof(Label)) { Label lbl = sender as Label; ID = Convert.ToInt32(lbl.Name); } else { PictureBox pb = sender as PictureBox; ID = Convert.ToInt32(pb.Name.TrimStart('p')); } MessageBox.Show(ID.ToString()); if (itemBeingDragged >= 0 && itemBeingDragged < 100) { itemBeingDragged = -1; } }

Visa signatur

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Permalänk
Medlem

Du använder this på sista raden i ItemMouseDown :
this.MouseMove += ...

Men är det hela formuläret du ska attacha till, eller funkar det bättre om du attachar till sender ?

Permalänk
Medlem

Jag ska använda mousemove för att flytta två saker som hör ihop och därför tror jag det är bäst om man attachar det till formet eller i mitt fall en panel.
Jag ska använda nått liknande:

private void ItemDragged(object sender, MouseEventArgs e) { if (itemBeingDragged != -1) { item.Location = e.Location; } }

Det jag antar är problemet är att mousemove inte "triggas" när man håller ner vänstra musknappen av någon anledning

Visa signatur

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Permalänk
Medlem

Jag tror jag lyckades lösa det:

int x = 0; int y = 0; private void ItemMouseDown(object sender, MouseEventArgs e) { int ID; if (sender.GetType() == typeof(Label)) { Label lbl = sender as Label; ID = Convert.ToInt32(lbl.Name); } else { PictureBox pb = sender as PictureBox; ID = Convert.ToInt32(pb.Name.TrimStart('p')); } itemBeingDragged = ID; x = e.X; y = e.Y; } private void ItemDragged(object sender, MouseEventArgs e) { if (itemBeingDragged != -1) { itemies[itemBeingDragged].pb.Location = new Point((itemies[itemBeingDragged].pb.Location.X + e.X) - x, (itemies[itemBeingDragged].pb.Location.Y + e.Y) - y); ; itemies[itemBeingDragged].lbl.Location = new Point(itemies[itemBeingDragged].pb.Location.X + 23, itemies[itemBeingDragged].pb.Location.Y); } }

Att jag inte tänkte på att göra så...

Visa signatur

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Permalänk

Jag vet inte riktigt vad det är du vill åstadkomma men tänkte ändå upplysa dig om att .net har en hel drös inbyggda events för drag and drop. Det kan helt enkelt vara så att dra grafiska objekt med musen samtidigt som musknappen är intryckt inte triggar MouseMove eftersom det finns andra events som prioriteras, det är dessa du ska använda.

Visa signatur

www.uu.se - some kind of university | www.hirr.org.uk - ain't no mountain high enough | www.bajenfans.se

Permalänk
Medlem

Ja jussde hade helt glömt bort det, det borde nog kanske lösa mina problem. Tack för påminnelsen!

Visa signatur

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem