.NET Framework предоставляет собственный курсор для Cursor.Hand
; он не загружает выбранный пользователем курсор из операционной системы.
Я могу только представить, что это связано с тем, что Windows NT 4, на которой будет работать .NET, не предоставляет «ручной» курсор. Эта функция была добавлена в Windows 98 и 2000. Приложения, предназначенные для Windows 95 или NT 4, предоставляют собственный курсор в виде руки, если он им нужен.
Хорошая новость заключается в том, что обходной путь относительно прост. Это довольно небольшое количество взаимодействия. Вам просто нужно использовать LoadCursor
с IDC_HAND
, а затем передать возвращенный дескриптор в конструктор для Cursor
класса.
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
class Form1 : Form{
enum IDC{
HAND = 32649,
// other values omitted
}
[DllImport("user32.dll", CharSet=CharSet.Auto)]
static extern IntPtr LoadCursor(IntPtr hInstance, IDC cursor);
public Form1(){
Cursor = new Cursor(LoadCursor(IntPtr.Zero, IDC.HAND));
}
}