C# Form自定义光标的简单实现

下面是完整的例子,可以通过命令行编译即可看到效果。


代码如下:

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Reflection;

namespace ColorCursor
{
 /// <summary>
 /// 本例子的作用: 在.NET中实现自定义光标。
 /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
        [DllImport("user32.dll")]
        public static extern IntPtr LoadCursorFromFile( string fileName );

[DllImport("user32.dll")]
        public static extern IntPtr SetCursor( IntPtr cursorHandle );

[DllImport("user32.dll")]
        public static extern uint DestroyCursor( IntPtr cursorHandle );

[STAThread]
        static void Main()
        {
            Application.Run(new Form1());
        }

public Form1()
        {
            Cursor myCursor = new Cursor(Cursor.Current.Handle);
            IntPtr colorCursorHandle = LoadCursorFromFile(@"C:WINNTCursorsdinosau2.ani" );   
            //dinosau2.ani为windows自带的光标:

myCursor.GetType().InvokeMember("handle",BindingFlags.Public |
            BindingFlags.NonPublic | BindingFlags.Instance |
            BindingFlags.SetField,null,myCursor,
            new object [] { colorCursorHandle } );
            this.Cursor = myCursor;
        }
    }
}

(0)

相关推荐

  • 解决C#获取鼠标相对当前窗口坐标的实现方法

    在我们编写客户端应用程序时,经常要用到鼠标当前的位置.在C#winform中,可以用Control.MousePosition获得当前鼠标的坐标,使用PointToClient计算鼠标相对于某个控件的坐标,如下Point screenPoint = Control.MousePosition;//鼠标相对于屏幕左上角的坐标Point formPoint = this.PointToClient(Control.MousePosition);//鼠标相对于窗体左上角的坐标Point context

  • c#使用win32api实现获取光标位置

    方法一:需要调用win32api,winform.wpf通用 [DllImport("user32.dll")] public static extern bool GetCursorPos(out POINT lpPoint); [StructLayout(LayoutKind.Sequential)] public struct POINT { public int X; public int Y; public POINT(int x, int y) { this.X = x;

  • C# WinForm中Panel实现用鼠标操作滚动条的实例方法

    方法如下:在窗体的Load事件注册滚动事件,并增加对应的方法 复制代码 代码如下: private void FormSample_Load(object sender, EventArgs e)        { //注册事件            this.MouseWheel += new MouseEventHandler(FormSample_MouseWheel);        } /// <summary>        /// 滚动方法        /// </sum

  • c#获取光标在屏幕中位置的简单实例

    需要调用win32api,winform.wpf通用 代码如下: 复制代码 代码如下: [DllImport("user32.dll")]public static extern bool GetCursorPos(out POINT lpPoint); [StructLayout(LayoutKind.Sequential)]public struct POINT{    public int X;    public int Y;    public POINT(int x, in

  • C#中winform实现自动触发鼠标、键盘事件的方法

    程序触发鼠标.键盘事件是C#程序设计中比较常见的功能,本文实例展示了C#中winform实现自动触发鼠标.键盘事件的方法,有不错的实用价值.具体如下: 要想在C#程序中触发鼠标.键盘事件就必须要调用windows函数. 一.鼠标事件的触发 1.引用windows函数mouse_event /// <summary> /// 鼠标事件 /// </summary> /// <param name="flags">事件类型</param> /

  • C# Form自定义光标的简单实现

    下面是完整的例子,可以通过命令行编译即可看到效果. 复制代码 代码如下: using System;using System.Drawing;using System.Windows.Forms;using System.Runtime.InteropServices;using System.Reflection; namespace ColorCursor{ /// <summary> /// 本例子的作用: 在.NET中实现自定义光标. /// </summary>    p

  • .NET中实现彩色光标、动画光标及自定义光标的方法

    本文所述实例主要完成dotNET中实现彩色光标.动画光标及自定义光标的功能.以下是完整的程序实例,可以通过命令行编译可看到运行效果. Test.cs页面代码如下: using System; using System.Drawing; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Reflection; namespace ColorCursor { /// <summary> //

  • springboot自定义拦截器简单使用及举例

    目录 1. 自定义拦截器 2. 拦截器登录验证的小demo 2.1 配置pom.xml 2.2 创建User的bean组件 2.3 创建需要的表单页面以及登录成功的页面 2.4 编写controller映射关系 2.5 自定义拦截器类,实现intercepetor接口 2.6注册添加拦截器,自定义springboot配置类 2.7 运行测试 总结 1. 自定义拦截器 在springboot中,使用自定义拦截器,只需要将类实现HandlerIntercepter接口(与原生的filter也基本差不

  • Android自定义View实现简单的圆形Progress效果

    先给大家展示下效果图,如果感觉不错,请参考实现思路: 我们要实现一个自定义的再一个圆形中绘制一个弧形的自定义View,思路是这样的: 先要创建一个类ProgressView,继承自View类,然后重写其中的两个构造方法,一个是一个参数的,一个是两个参数的,因为我们要在xml文件中使用该自定义控件,所以必须要定义这个两个参数的构造函数.创建完了这个类后,我们先不去管它,先考虑我们实现的这个自定义View,我们想让它的哪些部分可以由使用者自己指定,比如说这个Demo中我们让他的外面圆的外边框颜色和宽

  • Layui Form 自定义验证的实例代码

    1.前台页面 <div class="layui-form-item"> <label class="layui-form-label">BOM编号</label> <div class="layui-input-block"> <input type="text" class="layui-input" name='code' lay-verify=&

  • 微信小程序轮播图自定义光标位置

    本文实例为大家分享了微信小程序轮播图自定义光标位置的具体代码,供大家参考,具体内容如下 如图 轮播图的光标可以用定位来改变上下左右的位置 wxml: <!--start banner   --> <swiper class='home-swiper' autoplay='true' bindchange='changDot' interval='4000'>   <!-- 设置自动播放,切换间隔时间-->   <swiper-item wx:for="{

  • C#实现自定义光标并动态切换

    目录 动态切换光标类型 自定义光标 系统有很多光标类型 :Cursors 类 (System.Windows.Input) | Microsoft Docs 本章介绍如何自定义光标.并动态切换光标类型. 动态切换光标类型 以白板书写为例:鼠标操作时,Cursor为红点:触摸时,Cursor为空: public MainWindow() { InitializeComponent(); MouseEnter += (s, e) => { ShowMouseCursor(e); }; MouseMo

  • Android自定义密码输入框的简单实现过程

    目录 一.实现效果及方案 二.实现 总结 一.实现效果及方案 预期效果图: 如上图所示,要实现一个这种密码输入框的样式,原生并未提供类似的效果,所以需要自定义控件的方式实现. 预期的基础效果: 只接受数字: 支持输入加密显示: 支持删除: 密码位数可配置: 文字大小.颜色.数字框背景可配置: 方案分析: 需要解决的问题: 配置性: 输入.删除如何实现? 整体UI如何实现? 1.对于输入删除可以通过setOnKeyListener监听软件盘的事件. 2.可配置性数据可以通过自定义的属性文件配置:

  • JSP 自定义标签之一 简单实例

    在JSP中使用自定义标签可以达到这样的目的,事实上,我们所熟知的各类框架基本上都是通过自定义标签的形式来实现的. 通过使用自定义标签,我们可以将实现复杂的逻辑在页面用简单的标签来加以展示.下面我们来实现一个非常简单的自定义标签,期望通过这个简单的实例引领各位进入自定义标签的领域.我们准备定义的这个自定义标签所实现的功能是在JSP页面中显示出版权信息,并且在以后的博文中,我们还会对它进行升级改造. 首先,打开编辑器,创建以下Java代码: 复制代码 代码如下: package com.yanzhi

  • Python自定义线程类简单示例

    本文实例讲述了Python自定义线程类.分享给大家供大家参考,具体如下: 一. 代码 # -*- coding:utf-8 -*- #! python2 import threading class mythread(threading.Thread): def __init__(self, num): threading.Thread.__init__(self) self.num = num def run(self): print('I am {0}'.format(self.num))

随机推荐