我在Visual C#中创建一个WinForms应用程序,并希望将光标更改为我创建的自定义图像(.cur)。我希望光标图像仅在表单窗口中更改为此。
之前回答的所有问题都建议将this.cursor
设置为使用光标路径创建的新cursor
对象,其语句如下:
this.Cursor = new Cursor(@"C:\green.cur"); // this
this.Cursor = new Cursor(GetType(), @"C:\green.cur"); // or this
但两个语句都会导致相同的错误:
图片格式无效。图像文件可能已损坏。
我按照建议[{3}}导入LoadImage
后,尝试使用user32.dll
导入光标,但这导致了错误:
传递给Cursor的Win32句柄无效或类型错误。
我可以使用以下语句将光标设置为标准等待光标:
this.Cursor = Cursors.WaitCursor;
当用于在光标嵌入资源的C ++程序中设置光标时,相同的.cur文件非常有效。
答案 0 :(得分:2)
您需要使用LoadCursorFromFile
:
[DllImport("user32.dll")]
static extern IntPtr LoadCursorFromFile(string lpFileName);
当您想要更改光标时:
IntPtr cursor = LoadCursorFromFile(@"C:\green.cur");
this.Cursor = new Cursor(cursor);