发布时间:2020-04-12编辑:佚名阅读(1282)
第一种:(调用系统API)
首先引入两个命名空间
代码如下:
using System.Runtime.InteropServices; using System.Reflection;
导入API
代码如下:
[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);
接下来使用自己的鼠标样式
代码如下:
private void Form1_Load(object sender, EventArgs e) { Cursor myCursor = new Cursor(Cursor.Current.Handle); IntPtr colorCursorHandle = LoadCursorFromFile("my.cur");//鼠标图标路径 myCursor.GetType().InvokeMember("handle", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetField, null, myCursor,new object[] { colorCursorHandle }); this.Cursor = myCursor; }
第二种:(不用API方式的,鼠标样式只需要一张背景透明的图片就行了,png或gif格式的)
代码如下:
public void SetCursor(Image cursor) { Bitmap myNewCursor = new Bitmap(32,32); Graphics g = Graphics.FromImage(myNewCursor); g.Clear(Color.FromArgb(0, 0, 0, 0)); g.DrawImage(cursor, 0,0,32,32); this.Cursor = new Cursor(myNewCursor.GetHicon()); g.Dispose(); myNewCursor.Dispose(); }
在你想要改变鼠标样式的事件里头使用这个方法就行了,如:
代码如下:
private void Form1_Load(object sender, EventArgs e) { Image a=Image.FromFile("myCur.png"); SetCursor(a); }
0人
0人
0人
0人