Пользовательский курсор в C # Winforms - PullRequest
1 голос
/ 10 июля 2011

Кто-нибудь знает простой способ использовать пользовательский курсор? У меня есть и .cur, и .png моего курсора. Я попытался добавить его в качестве ресурса в свой проект, а также попытался включить его в файл в проект. В идеале я хотел бы вставить его, но я просто хочу, чтобы он работал.

Когда я использую Cursor cur = new Cursor("mycursor.cur"), я получаю «Формат изображения недействителен. Файл изображения может быть поврежден». Я попробовал это http://mahesg.wordpress.com/2008/02/09/embedding-cursor/, но это не сработало. Использование WinForm1.Properties.Resources.mycursor возвращает байт [], который я не знаю, как преобразовать в тип Cursor.

Ответы [ 4 ]

7 голосов
/ 18 октября 2011

По какой-то причине класс курсора слишком требователен к тому, что он будет читать.Вы можете создать дескриптор самостоятельно, используя Windows API, а затем передать его классу курсора.

C #:

//(in a class)
public static Cursor ActuallyLoadCursor(String path) {
    return new Cursor(LoadCursorFromFile(path))
}
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern IntPtr LoadCursorFromFile(string fileName);

VB.Net:

'(in a class)'
Public Shared Function ActuallyLoadCursor(path As String) As Cursor
    Return New Cursor(LoadCursorFromFile(path))
End Function
<System.Runtime.InteropServices.DllImport("user32.dll")>
Private Shared Function LoadCursorFromFile(fileName As String) As IntPtr
End Function
5 голосов
/ 10 июля 2011

Запись new Cursor(new MemoryStream(Properties.Resources.mycursor))

4 голосов
/ 21 сентября 2011

Добавление пользовательского значка в курсор в C #:

Добавление файла значка в ресурсы проекта (например: Processing.ico)

И в окне свойств изображения переключите «Build Action» на «Embedded»."

Cursor cur = new Cursor(Properties.Resources.**Imagename**.Handle);
this.Cursor = cur;

Пример:

Cursor cur = new Cursor(Properties.Resources.Processing.Handle);
this.Cursor = cur;
0 голосов
/ 29 апреля 2015

Цель: изменить курсор на пользовательский курсор, когда пользователю необходимо выполнить вырезание в образце winforms UI

Сделай это будет работать

  1. Добавить файл значков (например, cut.ico) в проект
  2. Теперь добавьте значок в ресурс проекта. Чтобы добавить к ресурсу, щелкните правой кнопкой мыши проект-> свойства-> Ресурсы. Теперь перетащите файл ico из папки проекта (U добавлен в папку проекта в пункте 1) на Ресурсы
  3. Этот код должен помочь System.Windows.Forms.Cursor _customCutCursor = new System.Windows.Forms.Cursor (Properties.Resources.cut.Handle);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...