Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Eventi Di un Normale disegno vb.net
Forum - C# / VB.NET - Eventi Di un Normale disegno vb.net

Avatar
Federico1976 (Normal User)
Rookie


Messaggi: 42
Iscritto: 23/03/2009

Segnala al moderatore
Postato alle 12:21
Venerdì, 05/03/2010
Sono alle prime armi non fate caso se dico una castroneria, Avrei l'idea di inserire in una classe che  disegna figure,  degli eventi che li gestiscono o cambiano lo stato
Mi chiedevo se fosse possibile? o se devo inportare da un controllo per forsa
Cerco  di spiegare meglio:
disegno un cerchio in una picturebox come posso scatenare un evento quando passo sopra al cerchio' posso solo intercettarlo dalla picturebox?   o è posibile inserire un evento in una
classe base che lo disegna

Ringrazio Anticipatamente

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 8:59
Sabato, 06/03/2010
E' possibile inserire l'evento in una classe derivata, ma per generarlo devi comunque testare se il mouse è dentro il cerchio:

Codice sorgente - presumibilmente VB.NET

  1. Class CircleEventArgs
  2.    Inherits EventArgs
  3.    'Considerala come se fosse una proprietà
  4.    Public Circle As Circle
  5.  
  6.    Sub New(ByVal C As Circle)
  7.       Circle = C
  8.    End Sub
  9. End Class
  10.  
  11. Class Canavas
  12.    Inherits PictureBox
  13.  
  14.    Public Event MouseOnCircle As EventHandler(Of CircleEventArgs)
  15.  
  16.    'Collezione di cerchi. Assumiamo la classe Circle
  17.    'data, che contiene informazioni su un cerchio
  18.    Private Circles As List(Of Circle)
  19.  
  20.    '...
  21.  
  22.    Protected Sub OnMouseMove(ByVal e As MouseEventArgs)
  23.       Dim Dist As Single
  24.       For Each C As Circle In Circles
  25.          Dist = Math.Sqrt((C.Center.X - e.X)^2 + (C.Center.Y - e.Y)^2)
  26.          If Dist <= C.Radius Then
  27.              RaiseEvent MouseOnCircle(Me, New CircleEventArgs(C))
  28.          End If
  29.       Next
  30.       MyBase.OnMouseMove(e)
  31.     End Sub
  32.  
  33.     '...
  34. End Class



Ultima modifica effettuata da Il Totem il 06/03/2010 alle 9:00
PM Quote
Avatar
Federico1976 (Normal User)
Rookie


Messaggi: 42
Iscritto: 23/03/2009

Segnala al moderatore
Postato alle 12:07
Domenica, 07/03/2010
Sei un grande :k: proprio quello che intendevo credo proprio che sei il mio idolo grazie tanto :hail: :hail: :hail:  non avevo proprio pensato a una classe derivata

PM Quote