C# Form实现自定义光标

WinForm代码如下:1usingSystem;2usingSystem.Reflection;3usingSystem.Runtime.InteropServices;4us

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

WinForm代码如下:

 1 using System;
 2 using System.Reflection;
 3 using System.Runtime.InteropServices;
 4 using System.Windows.Forms;
 5 
 6 namespace KeleyiColorCursor
 7 {
 8 public partial class CursorForm : Form
 9 {
10 [DllImport("user32.dll")]
11 public static extern IntPtr LoadCursorFromFile(string fileName);
12 
13 [DllImport("user32.dll")]
14 public static extern IntPtr SetCursor(IntPtr cursorHandle);
15 
16 [DllImport("user32.dll")]
17 public static extern uint DestroyCursor(IntPtr cursorHandle);
18 
19 public CursorForm()
20 {
21 InitializeComponent();
22 Cursor myCursor = new Cursor(Cursor.Current.Handle);
23 string m_cursorFile = @"D:\keleyi\pen_r.cur";
24 
25 //pen_r.cur文件下载地址:
26 //http://down.keleyi.com/files/cursors/pen_r.cur
27 
28 
29 //或者设为动态光标
30 // m_cursorFile = @"D:\keleyi\dinosau2.ani";
31 //下载地址: http://down.keleyi.com/files/cursors/dinosau2.ani
32 
33 IntPtr colorCursorHandle = LoadCursorFromFile(m_cursorFile);
34 
35 
36 myCursor.GetType().InvokeMember("handle", BindingFlags.Public |
37 BindingFlags.NonPublic | BindingFlags.Instance |
38 BindingFlags.SetField, null, myCursor,
39 new object[] { colorCursorHandle });
40 this.Cursor = myCursor;
41 }
42 }
43 }

 

运行后,如果把光标移入窗体,光标消失了,那是因为没有下载光标文件到特定文件夹。
光标文件下载:http://down.keleyi.com/files/cursors/dinosau2.ani
http://down.keleyi.com/files/cursors/pen_r.cur

转载自:http://keleyi.com/a/bjad/vvks7sw7.htm

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120735.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm2021.11.3激活补丁_最新在线免费激活

    (pycharm2021.11.3激活补丁)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月30日
    65
  • attributes.add的用法[通俗易懂]

    attributes.add的用法[通俗易懂]Attributes.Add(";如:this.TextBox1.Attributes.add("onblue","window.Label1.style.backgroundColor=’#000000′;");this.TextBox1.Attributes.Add("onblur","this.style.display=’none’");javascript事件:on…

    2022年9月26日
    0
  • java uuid 随机数_Java随机数和UUID[通俗易懂]

    java uuid 随机数_Java随机数和UUID[通俗易懂]Java随机数和UUID#Java随机数在Java项目中通常是通过Math.random方法和Random类来获得随机数,前者通过生成一个Random类的实例来实现。此类产生的是一组伪随机数流,通过使用48位的种子,利用线性同余公式产生。在Java中,随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:种子不同,产生不同的随机数。种子相同,即使实例不同也产生相同的随机数。两种方式设…

    2022年7月14日
    15
  • MacPorts_mac查看使用电脑时间

    MacPorts_mac查看使用电脑时间1.MacPort中第三方软件下载包存放的默认路径是:/opt/local/var/macports/distfiles/为了提高安装速度,可以在安装新port时直接将此目录下的文件拷贝到新的MacPort相同的目录中就可以避免Port去网上下载。2.使用MacPort前应该首先更新Port的index输入:$ sudoport-vselfupdate (强烈推荐第一

    2022年9月21日
    1
  • 各种常用不等式汇总「建议收藏」

    各种常用不等式汇总「建议收藏」对数学中常用的不等式进行了汇总,目前只有结论,没有证明

    2022年9月14日
    0
  • 验证码 verifycode 留存可用

    验证码 verifycode 留存可用验证码verifycode留存可用

    2022年7月15日
    79

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号