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

本文所述实例主要完成dotNET中实现彩色光标、动画光标及自定义光标的功能。以下是完整的程序实例,可以通过命令行编译可看到运行效果。

Test.cs页面代码如下:

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()
 {
 this.Text = "欢迎光临【我们】:http://www.jb51.net/";
 Cursor myCursor = new Cursor(Cursor.Current.Handle);
 //dinosau2.ani为windows自带的光标:
 IntPtr colorCursorHandle = LoadCursorFromFile(@"C:/WINNT/Cursors/dinosau2.ani" );
 myCursor.GetType().InvokeMember("handle",BindingFlags.Public |
  BindingFlags.NonPublic | BindingFlags.Instance |
  BindingFlags.SetField,null,myCursor,
  new object [] { colorCursorHandle } );
 this.Cursor = myCursor;
 }
 }
}

相信本文所述实例对大家的C#程序设计能够起到一定的帮助作用。

(0)

相关推荐

  • asp.net gridview自定义value值的代码

    model里: 复制代码 代码如下: public function item($items,$name){ $returnValue=''; foreach($items as $n=>$item){ if(isset($this->$name)){ if($n==$this->$name){ $returnValue=$item; } } } return $returnValue; } view里: 复制代码 代码如下: array('name'=>'isPass','val

  • asp.net文件上传功能(单文件,多文件,自定义生成缩略图,水印)

    前言 上传功能,是大家经常用到了,可能每一个项目都可以会用到.网上到处都有上传功能的代码.比我写的好的有很多.我这里也仅是分享我的代码. 功能实现点 1.单个文件上传: 2.多个文件上传: 3.对于图片等类型的图像,可以自定义生成缩略图大小: 4.文件服务器扩展. 模式 主要使用的是"模板方法"的设计模式. 本文章的功能优缺点 1.可以自定义生成缩略图的大小,任意定义.对于像微生活运动户外商城(http://sports.8t8x.com/) .淘宝网等的网站,他们需要上传大量的商品图

  • asp.net自定义控件回发数据实现方案与代码

    在实现asp.net的自定义控件中,若要实现数据的回发或者post数据,那自义控件必须实现IPostBackDataHandler接口, 在该接口中有两个方法一个是LoadPostData,另一个是RaisePostDataChangedEvent.第一个方法用于在回发数据时,填充自定义控件的相关属性,第二个方法用于激发控件相关的事件.也就是说这两个方法,应该是在提交数据的时候进行调用的. 可是,我们在实现自己的控件时,虽然继承了 IPostBackDataHandler,但是在提交数据的时候确

  • .net自定义事件示例分享

    1.新建一个控制台应用程序TestDelegate,本项目主要实现:热水器加热,报警器监控,当热水温度达到80度的时候报警器报警这样一个简单的事件处理程序 2.定义委托处理程序 复制代码 代码如下: public delegate void PlayGameHandler(object sender, System.EventArgs e); 3.添加一个报警器类,报警方法只有在温度超过80度的时候会被调用 复制代码 代码如下: // 负责报警的人    public class 报警器   

  • .net使用自定义类属性实例

    一般来说,在.net中可以使用Type.GetCustomAttributes获取类上的自定义属性,可以使用PropertyInfo.GetCustomAttributes获取属性信息上的自定义属性.   下面以定义一个简单数据库表的映射实体类来说明相关的使用方法,基于自定义类属性和自定义类中的属性的自定义属性,可以方便的进行类标记和类中属性的标记   创建一个类的自定义属性,用于标识数据库中的表名称,需要继承自Attribute类: 复制代码 代码如下: [AttributeUsage(Att

  • asp.net DropDownList自定义控件,让你的分类更清晰

    看到Discuz是2个下拉列表进行合并的,网上找了一些资料,然后写了这个小源码,在这里和大家分享一下! 运行效果图,如下所示(深黑的地方选不中,因为那是上一级的分类): 项目结构图如下所示: Controls类库SmartDropDownList.cs代码如下所示: SmartDropDownList.cs 复制代码 代码如下: using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using Syste

  • ASP.NET性能优化之构建自定义文件缓存

    现在,借助于.NET4.0中的OutputCacheProvider,我们可以有多种选择创建自己的缓存.如,我们可以把HTML输出缓存存储到memcached分布式集群服务器,或者MongoDB中(一种常用的面向文档数据库,不妨阅读本篇http://msdn.microsoft.com/zh-cn/magazine/gg650661.aspx).当然,我们也可以把缓存作为文件存储到硬盘上,考虑到可扩展性,这是一种最廉价的做法,本文就是介绍如果构建自定义文件缓存. 1:OutputCachePro

  • asp.net自定义控件中注册Javascript问题解决方案

    复制代码 代码如下: protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); RenderJS(); } private void RenderJS() { if (!Page.ClientScript.IsClientScriptBlockRegistered(SCRIPT_ID))//如果还没有注册语句,则注册 { Page.ClientScript.RegisterClientScriptBlock(t

  • asp.net自定义分页控件示例

    一..ascx页面 复制代码 代码如下: <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Pagination.ascx.cs" Inherits="IOCS.WEB.UserControl.Pagination" %><link href="../Content/Css/Pager.css" rel="s

  • Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)

    复制代码 代码如下: using System; using System.IO; using System.Text; using System.Data; using System.Web.UI; using System.Web.UI.WebControls; namespace ec { /// <summary> /// 文件操作类 /// </summary> public class FileObj : IDisposable { private bool _alre

随机推荐