2009-01-11 30 views
6

En mi proyecto de VB.net, creé un cursor personalizado (Window.cur). ¿Cómo puedo asignar eso al cursor sin tener que usar la ruta completa del archivo a ese archivo?Establecer el cursor personalizado desde el archivo de recursos

VB.Net tiene My.Resources pero no muestra los cursores integrados en el proyecto.

He encontrado un ejemplo que utiliza código como este:.. Nueva Cursor (Reflection.Assembly.GetExecutingAssembly.GetManifestResourceStream ("Window.cur"), pero eso no funciona

Respuesta

8

Adivinar el nombre del recurso puede ser difícil. Para averiguarlo, ejecute Ildasm.exe en su programa. Haga doble clic en "Manifiesto" y busque el .mresource.

Otra forma de hacerlo que evita adivinar: Proyecto + Propiedades, pestaña Recurso. Haga clic en la flecha en el botón "Agregar recurso", agregue el archivo existente y seleccione su archivo .cur. Haga que su código se vea así:

Dim ms As New System.IO.MemoryStream(My.Resources.Cursor1) 
Button1.Cursor = New Cursor(ms) 
0

Te estas perdiendo el espacio de nombres Probablemente que desee utilizar:

MyNamespace.MySubfolder.Window.cur 

EDIT:. también, asegúrese de que su Acción de generación para el elemento está "Recurso incrustado", de lo contrario no se incluyen en el archivo DLL/EXE

+0

ocdecio: ¿Puede ser más específico, por favor? Probé todas las variaciones que pude pensar con lo que mencionaste. VB.Net no tiene MyNamespace por lo que puedo ver (por supuesto, podría estar equivocado). – KerryF

0

Supongamos que se está asignando " Cursor1.cur "ser el c ursor para el control "Button1"

En su caso Form.Load que haría algo así -

Button1.Cursor = New Cursor(Me.GetType(), "Cursor1.cur") 
1

¡Gracias por la ayuda! Supuse que si creaba el recurso en el IDE de Visual Studio, lo agregaría a mi proyecto. ¡Tonto de mí!

que tenía que ir a la pestaña de proyecto para agregar el archivo Window.Cur utilizando Agregar recurso (gracias nobugz!) Y luego utilizar el código mencionó:

Dim ms As New System.IO.MemoryStream(My.Resources.Window) 

Button.Cursor = New Cursor(ms) 

Votaría arriba en la respuesta si Podría pero no puedo, ya que solo tengo un valor de 13 actualmente.

0

no debe utilizar cursores de color de 32 bits.

Cuestiones relacionadas