Страницы

Поиск по вопросам

среда, 12 февраля 2020 г.

Изменить курсор на свой C# WinForms

#c_sharp #winforms


Подскажите как изменить курсор на свой? Делаю так :

 Cursor cur = new Cursor(new System.IO.MemoryStream(global::MSU.Properties.Resources.cursorDragDrop));


Пишет ошибку - 


  Наиболее подходящий перегруженный метод для "System.IO.MemoryStream.MemoryStream(int)"
имеет несколько недопустимых аргументов

    


Ответы

Ответ 1



К примеру можно сделать так (из доступных курсоров): Cursor.Current = Cursors.WaitCursor; Или же свой курсор вот так: Cursor.Current = new Cursor("C:\\<путь к файлу>\\icon.cur"); Кстати, обратите внимание на расширение файла .cur, к примеру .gif туда нельзя упаковать. В VisualStudio есть возможность создать Cursor File (по крайней мере была). Все что Вам нужно - это указать путь к файлу и собственно говоря - сам файл. Будет полезно: Cursors - свойства Если хочется зашить в программу, то думаю стоит добавить файл курсора(.cur) в ресурсы проекта. Затем в коде получить этот файл, конвертировать и создать курсор, что-то на подобии этого: var img = new Bitmap(WindowsFormsApplication1.Properties.Resources.myCursor); Icon icon = Icon.FromHandle(img.GetHicon()); Cursor cur = new Cursor(icon.Handle); Cursor.Current = cur; Данный код приведен в качестве альтернативного примера, но в нем имеются свои недостатки в виде утечки нативных ресурсов. Также, если кликнуть мышкой в окне чужой программы - может возникнуть проблема. Поэтому советую ознакомиться с этим ответом Change Cursor HotSpot in WinForms .NET, он будет более правильным, с использованием WinAPI.

Комментариев нет:

Отправить комментарий