Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#更改光标#x27;s点击/指向位置?_C#_Winforms_Cursor - Fatal编程技术网

C#更改光标#x27;s点击/指向位置?

C#更改光标#x27;s点击/指向位置?,c#,winforms,cursor,C#,Winforms,Cursor,因此,默认光标是“箭头”光标,箭头的左上角(点所在的位置)是单击或与其他控件交互的部分。如何将指向部分更改为箭头的尾部 我有一个自定义光标(位图图像),它是一个16x16大小的圆,我希望它的中心是指针。我有另一个自定义的箭头状光标,指向左下角,也是16x16,我希望光标的左下角是指针。我认为cursor类中有一个属性,但我不确定它叫什么。这实际上是在CUR中指定的 CUR文件格式是一种几乎相同的图像文件格式 Microsoft Windows中的非动画光标。唯一的区别 这两种文件格式之间是用于标

因此,默认光标是“箭头”光标,箭头的左上角(点所在的位置)是单击或与其他控件交互的部分。如何将指向部分更改为箭头的尾部


我有一个自定义光标(位图图像),它是一个16x16大小的圆,我希望它的中心是指针。我有另一个自定义的箭头状光标,指向左下角,也是16x16,我希望光标的左下角是指针。我认为cursor类中有一个属性,但我不确定它叫什么。

这实际上是在
CUR
中指定的

CUR文件格式是一种几乎相同的图像文件格式 Microsoft Windows中的非动画光标。唯一的区别 这两种文件格式之间是用于标识它们的字节,以及 在CUR格式报头中添加热点;热点是 定义为从左上角开始的像素偏移(在x,y坐标中) 用户实际指向的光标图像的一角 老鼠


可以编辑
CUR
文件的程序通常允许您指定热点。更多信息可以在中找到。

这里有一篇关于这个主题的非常详尽的文章:


它包括设置光标,通过自定义结构和位图创建光标,并将其全部放在应用程序中。

您想要的无法通过代码完成。我想做同样的事情,但这是不可能的。 事实上,有一个名为HotSpot的属性,这是您想要更改的点。但是,此属性是只读的。 改变这一点的唯一方法是加载文件(在.cur文件中,我建议您使用带光标和图标的Paint.net插件(通过web搜索)来编辑光标)。重要的一点是:游标必须是一个文件,而不是一个资源或类似的东西(必须是文件系统上的文件)才能加载它。记住,我在其他方面的测试都很糟糕

我的想法是:在需要更改热点时编辑光标文件,但是这需要编写一个api,允许您在光标文件上更改热点。我显然不知道这个文件是如何构建的,所以您必须从这里继续


希望这是有用的

我想我应该指定我拥有的是位图(png),而不是光标文件。有没有办法用位图来实现这一点?@Jack-也许这更接近你所需要的?这篇文章或Rick的教程不是在运行时(即通过代码)从位图创建光标吗?你可以通过代码创建位图,但我不知道的是,你可以创建一种指向光标的句柄,而不必将其作为文件(我认为即使在运行时创建它,也必须将其保存在文件系统中),我在那里读到一些其他问题,对此表示抱歉。但是,您必须重建整个光标以更改其热点,这是我想向他展示的重要内容