Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


PictureBox Image onmouseover : Kan man detektera om mus är över en viss cirkel m

Postades av 2006-02-05 03:30:31 - Ted Ekeroth, i forum c# (c-sharp), Tråden har 7 Kommentarer och lästs av 1153 personer

Hej!

Jag har en PictureBox med en bild i (en karta). På denna PictureBox placerar jag ut blåa cirklar som ska vara noder (bilar).

Det gör jag med GDI+, Draw, Invalidate osv... Jag funderar på hur man kan göra på ett effektivt sätt så att man med musen man klicka på en av dessa cirklar och programmet sak kunna avgöra vilken nod det var man klickade på och agera därefter.

Tacksam för tips!


Svara

Sv: PictureBox Image onmouseover : Kan man detektera om mus är över en viss cirk

Postades av 2006-02-05 05:18:22 - Ted Ekeroth

Jag sitter nu och testar med att istället för att rita ut cirklar så vill jag placerar en UserControl eller en Button eller något sådant ovanpå den karta jag har. Då är det enkelt att få en OnMouse-event av något slag...

Men hur placerar jag en UserControl i en PictureBox så den hamnar ovanpå Image:en som jag har? Som det är nu hamnar allt sådant under Image:n och syns alltså inte alls.

Tacksam för svar om detta och även om första frågan där =)


Svara

Sv:PictureBox Image onmouseover : Kan man detektera om mus är över en viss cirk

Postades av 2006-02-05 18:21:14 - Roger Lindberg

T.ex. Skapa en klass Cirkel som har en metod för att rita sig själv Draw(Graphics g) och en metod som tar reda på om en viss punkt ligger innanför cirkeln, public bool IncludesPoint(Point p). Vid MouseClick "frågar" du crikelobjektet (eller alla cirkelobject om du har flera) om punkten MouseEventArgs.Location, ligger innanför cirkeln genom att anropa metoden IncludesPoint, if ( cirkel.IncludesPoint ( e.Location) ) ...


Svara

Sv:PictureBox Image onmouseover : Kan man detektera om mus är över en viss cirk

Postades av 2006-02-07 10:08:55 - Joakim Rosendahl

Jag skulle också föreslå att gör som Roger Lindberg. Men om du vill använda dig av en UserControl behöver du nog lägga till den i Picturesbox'en via pctBox.Controls.Add(userControl). I din beskrivning låter det som du inte har gjort så. Kan inte säga dig på rak arm om det blir några klurigheter med OnMouse-eventet för UserControl'erna eftersom de ligger i en annan kontroll, men det borde inte vara några problem.

Men som sagt, gå på Rogers lösning istället. Lycka till!


Svara

Sv: PictureBox Image onmouseover : Kan man detektera om mus är över en viss cirk

Postades av 2006-02-21 00:15:05 - Ted Ekeroth

Hej, och ursäkta sent svar.

Jag funderade på Rogers variant, men tyckte att det blir en väldig massa beräkningar om man ska gå igenom alla de cirklar jag kommer ha utrtiade... kan säkert vara ett par hundra eller så. Det fungerar säkert men troligen blir det enormt slött och jag har redan lite "performance"-problem dessvärre... att rita om cirklarna tar minst 15ms vilket irriterar.

Jag tog Control.Add på PictureBox:en men den la sig under bilden ändå...
Tack för svar iaf, ska ta en titt på det snart igen när jag får lite tid!


Svara

Sv:PictureBox Image onmouseover : Kan man detektera om mus är över en viss cirk

Postades av 2006-02-21 13:57:12 - Niklas Jansson

Dessa "beräkningar" är ytterligt enkla och borde inte vara några större problem tidsmässigt...

Du har ett antal cirklar, alla med en radie r, och med medelpunkter (x_i, y_i)
Du får sedan in ett punkt (x, y).

Det du gör för att kolla är att ta (pseudo):

for(c = alla cirklar){
xdiff=(c.x-x);
ydiff=(c.y-y);
if(xdiff*xdiff+ydiff*ydiff > r*r)
//innanför c.
}

får det till 3 add/sub, 2 tilldelningar, 3 produkter och en jämförelse gånger antalet objekt.
Jämfört med hur mycket beräkningar som krävs för en cirkel med radie r (O(r), eller O(r²) beroende på om de är ifyllda eller inte), borde det här vara försumbart.

Fast det beror ju på hur mycket overhead .NET slänger på, förstås. I ren C för hyfsat stora cirklar så är det iaf så...


Svara

Sv: PictureBox Image onmouseover : Kan man detektera om mus är över en viss cirk

Postades av 2006-02-21 14:35:32 - Johan Bovin

Kolla på GraphicsPath objektet och dess IsVisible metod, jag tror att det är där du hittar den snyggaste lösningen. Kolla t.ex http://www.code-magazine.com/article.aspx?quickid=0305061&page=4
eller http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c74c.aspx#q19q


Svara

Sv:PictureBox Image onmouseover : Kan man detektera om mus är över en viss cirk

Postades av 2006-03-13 19:50:39 - Ted Ekeroth

Tack för svar!
Ska undersöka båda varianter inom kort. Återkommer med hur det fungerar när jag testar =)


Svara

Nyligen

  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe
  • 20:22 Spel
  • 17:07 Snabb och trevlig webbplats utan l

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 120
27 958
271 737
423
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies
Expand
next previous
Close

Previous

0/0

Next