Salve
Devo fare una mappa interattiva.
Sono riuscito a disegnare gli stati della mappa (con colore diverso),
ma non so come fare a capire quando il mouse si trova su un determinato stato.
In altre parole vorrei che scattasse un evento nel momento in cui il mouse si trova su uno stato.
Come posso fare?
Ecco un estratto del codice che utilizzo per disegnare gli stati:
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Drawing.Imaging
Imports System.Drawing.Text
....
Private Enum e_Colore
Nero
Verde
Giallo
Rosso
Blu
Viola
End Enum
Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
Dim gr As Graphics = e.Graphics
DisegnaStato("Egitto", e_Colore.Viola, gr)
gr.Dispose()
End Sub
Private Function DisegnaStato(ByVal Stato As String, ByVal Colore As e_Colore, ByRef gr As Graphics) As Bitmap
Dim PathImmaginiStati As String = "C:\Immagini\"
Dim R As Single, G As Single, B As Single
Select Case Colore
Case e_Colore.Viola
R = 1
G = 0.1
B = 1
Case e_Colore.Rosso
R = 1
B = 0.1
G = 0.1
Case e_Colore.Blu
R = 0.1
G = 0.1
B = 1
Case e_Colore.Verde
R = 0.1
G = 1
B = 0.1
Case e_Colore.Giallo
R = 1
G = 1
B = 0.1
Case e_Colore.Nero
R = 0.25
G = 0.25
B = 0.25
End Select
Dim values()() As Single = {New Single() {R, 0, 0, 0, 0}, _
New Single() {0, G, 0, 0, 0}, _
New Single() {0, 0, B, 0, 0}, _
New Single() {0, 0, 0, 1, 0}, _
New Single() {0, 0, 0, 0, 1}}
Dim colMatrix As New ColorMatrix(values)
Dim imageAttr As New ImageAttributes()
imageAttr.SetColorMatrix(colMatrix, ColorMatrixFlag.Default _
, ColorAdjustType.Bitmap)
Dim bmp As New Bitmap(PathImmaginiStati & Stato & ".gif")
gr.DrawImage(bmp, New Rectangle(1, 1, bmp.Width, bmp.Height), 0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel, imageAttr)
bmp.Dispose()
End Function