Bar*_*ens 38 c# mouse cursor .net-2.0 winforms
在UserControl
我想要将鼠标光标从箭头更改为手形图标.
我目前做的是这样的:
this.Cursor = Cursors.Hand;
Run Code Online (Sandbox Code Playgroud)
这非常好,它给我一个鼠标光标看起来像这样:
但是这里出现了我的问题......这显示了一只手指指针.
我需要的是一个"抓住"的手,更像是这个:
我该怎么做?,如何加载图标文件(.ico),光标文件(.cur)或图像文件(.png),并将其用作鼠标光标?
fix*_*gon 19
如果你有一个光标文件:
Cursor myCursor = new Cursor("myCursor.cur");
myControl.Cursor = myCursor;
Run Code Online (Sandbox Code Playgroud)
否则你必须创建一个:
有关自定义游标的更多信息
在 WinFormsCursor
类中使用自定义游标的一个警告是,当使用流、文件名和资源构造函数重载时,提供的.cur
文件必须是黑白颜色的。
.cur
这意味着如果文件包含除黑白之外的任何颜色,则此方法将不起作用。
Cursor myCursor = new Cursor("myCursor.cur");
myControl.Cursor = myCursor;
Run Code Online (Sandbox Code Playgroud)
有一种方法可以通过使用 Windows 句柄构造函数重载来解决此限制:
使用 Windows API 创建句柄:
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern IntPtr LoadCursorFromFile(string fileName);
Run Code Online (Sandbox Code Playgroud)
然后将其传递给适当的Cursor
构造函数,如下所示:
IntPtr handle = LoadCursorFromFile("myCursor.cur");
Cursor myCursor = new Cursor(handle);
myControl.Cursor = myCursor;
Run Code Online (Sandbox Code Playgroud)
我希望这可以防止其他人摸不着头脑,被ArgumentException
抛出这样的错误:Image format is not valid. The image file may be corrupted.
当使用其他Cursor
构造函数重载包含.cur
颜色的文件时。
归档时间: |
|
查看次数: |
68819 次 |
最近记录: |