C# 使用Windows拖动复制光标
我可以像这样设置光标:C# 使用Windows拖动复制光标,c#,.net,winforms,C#,.net,Winforms,我可以像这样设置光标: Me.Cursor = Cursors.Cross 使用IntelliSense,我找不到此“复制”光标: 有没有办法以有管理的方式获得它? 我不想加载位图左右。 我想让Windows来决定,因为用户可能更改了光标大小或设置了不同的颜色模式。拖放光标属于ole32.dll。您可以从该库加载它们。为此,需要使用加载ole32.dll,然后使用获取这些游标的句柄。您可以使用1到7作为LoadCursor参数从ole32.dll获取游标。您要查找的光标是3或6: 这是一个
Me.Cursor = Cursors.Cross
使用IntelliSense,我找不到此“复制”光标:
有没有办法以有管理的方式获得它?
我不想加载位图左右。
我想让Windows来决定,因为用户可能更改了光标大小或设置了不同的颜色模式。拖放光标属于
ole32.dll
。您可以从该库加载它们。为此,需要使用加载ole32.dll
,然后使用获取这些游标的句柄。您可以使用1到7作为LoadCursor
参数从ole32.dll
获取游标。您要查找的光标是3
或6
:
这是一个拖动光标,当您执行拖放功能时会自动出现。@Sunil谢谢。编辑了我的标题。没有拖动就无法调用它吗?拖放游标是后来的附加组件,从来都不是系统游标的一部分。您可以窃取它们,使用文件>打开>文件并选择c:\windows\system32\ole32.dll。打开游标节点,右键单击>导出。实现自己的D+D而不是使用标准的DoDragDrop()和friends几乎总是一个非常糟糕的主意。我使用VisualStudio文件导出了这些游标→打开对于光标、图标和其他资源,您始终可以执行相同的操作。您还可以将它们作为嵌入式资源添加到应用程序中。此外,如果是标准的拖放操作,则最好依赖标准游标,该游标是基于拖放事件中的
e.Effect
设置的。
[DllImport("kernel32.dll")]
public static extern IntPtr LoadLibrary(string dllToLoad);
[DllImport("user32.dll")]
public static extern IntPtr LoadCursor(IntPtr hInstance, UInt16 lpCursorName);
private void button1_Click(object sender, EventArgs e)
{
var l = LoadLibrary("ole32.dll");
var h = LoadCursor(l, 6);
this.Cursor = new Cursor(h);
}