MouseDown + MouseMove problem c#

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008

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; } }

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

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2004

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 ?

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008

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

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

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008

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å...

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

Trädvy Permalänk
Medlem
Plats
Tokyo
Registrerad
Nov 2002

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.

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

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008

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

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