贴代码吧,最直接 vs2008 .net 2.0通过。 using System; using System.Drawing; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Reflection;namespace WindowsFormsApplication2 { public partial class Form1 : 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);
如果this.Cursor = Cursors.Hand;那么在vasta下鼠标光标就不是vasta下的光标。
{
Cursor m_Currsor = new Cursor(Icon.Handle);
Cursor = m_Currsor;
}这样?
public static extern IntPtr SetCursor(IntPtr hCursor);
/// <summary>
/// 获取鼠标句柄
/// </summary>
/// <param name="hInstance">IntPtr.Zero</param>
/// <param name="cursor">样式</param>
/// <returns></returns>
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr LoadCursor(IntPtr hInstance, CursorType cursor); public enum CursorType : uint
{
IDC_ARROW = 32512U,
IDC_IBEAM = 32513U,
IDC_WAIT = 32514U,
IDC_CROSS = 32515U,
IDC_UPARROW = 32516U,
IDC_SIZE = 32640U,
IDC_ICON = 32641U,
IDC_SIZENWSE = 32642U,
IDC_SIZENESW = 32643U,
IDC_SIZEWE = 32644U,
IDC_SIZENS = 32645U,
IDC_SIZEALL = 32646U,
IDC_NO = 32648U,
IDC_HAND = 32649U,
IDC_APPSTARTING = 32650U,
IDC_HELP = 32651U
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
IntPtr _HandCursor = LoadCursor(IntPtr.Zero, CursorType.IDC_HAND);
SetCursor(_HandCursor);
}这个和你系统设置有关系.... 我真不知道你要什么.
要在按钮上改变成另一个光标,设置button1.Cursor = ...;把需求描述清楚了,可以有更多朋友能帮忙。
vs2008 .net 2.0通过。
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Reflection;namespace WindowsFormsApplication2
{
public partial class Form1 : 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);
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
Cursor myCursor = new Cursor(Cursor.Current.Handle);
//busy_i.cur为windows自带的光标:
IntPtr colorCursorHandle = LoadCursorFromFile(@"C:\Windows\Cursors\busy_i.cur");
myCursor.GetType().InvokeMember("handle", BindingFlags.Public |
BindingFlags.NonPublic | BindingFlags.Instance |
BindingFlags.SetField, null, myCursor,
new object[] { colorCursorHandle });
this.Cursor = myCursor;
}
}
}
应该是zgke兄台给的那个。试试下。
C# 自定义光标 C# 彩色光标 光标嵌入资源文件