Se volete cambiare l'aspetto del puntatore del mouse potete usare uno di questi metodi:
1- Usare un cursore appartenente alla lista standard che Visual Basic 2010 Express Edition mette a disposizione.
Il codice cambia l'aspetto del mouse quando questo si trova sopra una TextBox.
TextBox1.Cursor = Cursors.Hand
2- Caricare un puntatore attraverso il suo percosrso assoluto.
Come nell'esempio precedente, viene cambiato l'aspetto del cursore quando si trova sopra una TextBox, solo che l'immagine usata è un file che è memorizzato sul proprio PC ed è individuato dal suo percorso assoluto.
TextBox1.Cursor = New System.Windows.Forms.Cursor("D:\Documenti\mano.cur")
3- Caricare un puntatore incorporato nelle Risorse dell'applicazione:
Si carica un file .CUR nelle rirorse dell'applicazione in questo modo:
Menù Progetto->
Proprietà di NOME_PROGETTO->
TAB Risorse->
Aggiungi Risorsa->
Aggiungi File esistente->
File .CUR che vogliamo usare
Io ho usato un file denominato pugno.cur.
Come nei due esempi precedenti, anche in questo caso l'aspetto del puntatore del mouse cambia quando viene a trovarsi sopra una TextBox.
Dim immaginePugno As New System.IO.MemoryStream(My.Resources.pugno) Dim cursorePugno As New Cursor(immaginePugno) immaginePugno.Close() TextBox1.Cursor = cursorePugno
I tre semplici esempi precedenti, fanno uso della classe Cursor (MSDN - Classe Cursor), che il .Net Framework mette a disposizione dei programmatori, purtroppo tale classe permette la gestione solo di file .CUR e in BIANCO e NERO.
4- Cursore a colori recuperato da un qualunque file immagine.
In rete ho trovato qualche esempio su come caricare un puntatore a colori tratto da una qualunque immagine.
Il codice che allego l'ho trovato nel Forum www.pierotofy.it, dove un utente chiedeva proprio come realizzare un puntatore a colori con VB 2008 EE. La soluzione proposta prevede l'utilizzo delle API di Windows ed è richiesto che il file immagine a colori, che servirà da puntatore, venga caricato nelle Risorse dell'applicazione che stiamo realizzando. Anche quà, viene cambiato il suo aspetto solo per una TextBox.
Imports System.Runtime.InteropServices Public Class Form1 Public Structure IconInfo Public fIcon As Boolean Public xHotspot As Integer Public yHotspot As Integer Public hbmMask As IntPtr Public hbmColor As IntPtr End Structure Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim bitmap As New Bitmap(140, 25) Dim s As Image = My.Resources.ManoColorata Dim g As Graphics = Graphics.FromImage(bitmap) bitmap = New Bitmap(s) g.DrawImage(s, 0, 0, 50, 50) TextBox1.Cursor = CreaCursore(bitmap, 3, 3) bitmap.Dispose() End Sub <DllImport("user32.dll", EntryPoint:="CreateIconIndirect")> _ Public Shared Function Icona(ByRef icon As IconInfo) As IntPtr End Function <DllImport("user32.dll", EntryPoint:="GetIconInfo")> _ Public Shared Function InfoIcona(ByVal hIcon As IntPtr, ByRef pIconInfo As IconInfo) As Boolean End Function Public Shared Function CreaCursore(ByVal bmp As Bitmap, ByVal xHotSpot As Integer, _ ByVal yHotSpot As Integer) As Cursor Dim tmp As New IconInfo() InfoIcona(bmp.GetHicon(), tmp) tmp.xHotspot = xHotSpot tmp.yHotspot = yHotSpot tmp.fIcon = False Return New Cursor(Icona(tmp)) End Function End Class
In rete si trovano alcune applicazioni FREE che ci consentono di disegnare i propri CURSORI:
- RealWorld Cursor Editor
- Edit Cursors Online