Установить пользовательский курсор из файла ресурсов - PullRequest
6 голосов
/ 11 января 2009

В своем проекте VB.net я создал собственный курсор (Window.cur). Как я могу назначить это курсору, не используя полный путь к файлу?

VB.Net имеет My.Resources, но не показывает курсоры, встроенные в проект.

Я нашел пример, который использовал такой код: Новый курсор (Reflection.Assembly.GetExecutingAssembly.GetManifestResourceStream ("Window.cur"), но это не работает.

Ответы [ 5 ]

8 голосов
/ 11 января 2009

Угадать имя ресурса может быть сложно. Чтобы узнать, запустите Ildasm.exe в вашей программе. Дважды щелкните «Манифест» и найдите .mresource.

Еще один способ избежать гадания: Project + Properties, вкладка Resource. Нажмите стрелку на кнопке «Добавить ресурс», добавьте существующий файл и выберите ваш .cur файл Сделайте так, чтобы ваш код выглядел так:

Dim ms As New System.IO.MemoryStream(My.Resources.Cursor1)
Button1.Cursor = New Cursor(ms)
1 голос
/ 11 января 2009

Спасибо за помощь! Я предполагал, что если бы я создал ресурс в IDE Visual Studio, он бы добавил его в мой проект. Дурак я!

Мне пришлось перейти на вкладку Project, чтобы добавить файл Window.Cur, используя Add Resource (спасибо nobugz!), А затем использовать упомянутый код:

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

Button.Cursor = New Cursor(ms)

Я бы проголосовал за ответ, если бы мог, но не смогу, поскольку в настоящее время у меня есть только значение 13.

0 голосов
/ 31 марта 2009

нельзя использовать 32-битные цветные курсоры.

0 голосов
/ 11 января 2009

Предположим, вы назначаете Cursor1.cur курсором для элемента управления Button1.

В вашем событии Form.Load вы бы сделали что-то вроде -

Button1.Cursor = New Cursor(Me.GetType(), "Cursor1.cur")
0 голосов
/ 11 января 2009

Вам не хватает пространства имен. Вы, вероятно, хотите использовать:

MyNamespace.MySubfolder.Window.cur

РЕДАКТИРОВАТЬ: Кроме того, убедитесь, что ваше действие по сборке для элемента "Встроенный ресурс", в противном случае оно не будет включено в ваш DLL / EXE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...