Windows Forms 中,任何控件(含 Form)均有 Cursor 屬性,類型為 System.Windows.Forms.Cursor。默認 Cursors.Default(通常為箭頭)。設置方式:
// 內置光標
this.Cursor = Cursors.WaitCursor; // 沙漏
button1.Cursor = Cursors.Hand; // 手形
// 自定義 .cur 文件
this.Cursor = new Cursor("path/to/custom.cur");
| 屬性名 | 外觀描述 | 典型應用場景 |
|---|---|---|
AppStarting | 箭頭+沙漏 | 應用啟動中,指示忙碌但可交互 |
Arrow | 標準箭頭 | 默認指針 |
Cross | 十字線 | 繪圖、選區、精確定位 |
Default | 箭頭 | 通用默認 |
Hand | 手形 | 超鏈接、可點擊元素、拖拽手柄 |
Help | 箭頭+問號 | 幫助模式、工具提示觸發區 |
HSplit | 水平分割雙箭頭 | 水平分割條調整 |
IBeam | I 型豎線 | 文本編輯區、輸入框 |
No | 圓圈斜杠 | 禁止操作、拒絕拖放 |
NoMove2D | 四向箭頭+禁止 | 滾輪模式下無內容可滾動 |
NoMoveHoriz | 左右箭頭+禁止 | 水平無內容可滾動 |
NoMoveVert | 上下箭頭+禁止 | 垂直無內容可滾動 |
PanEast | 右向平移箭頭 | 向右平移視圖 |
PanNE | 右上平移箭頭 | 向右上平移 |
PanNorth | 上向平移箭頭 | 向上平移 |
PanNW | 左上平移箭頭 | 向左上平移 |
PanSE | 右下平移箭頭 | 向右下平移 |
PanSouth | 下向平移箭頭 | 向下平移 |
PanSW | 左下平移箭頭 | 向左下平移 |
PanWest | 左向平移箭頭 | 向左平移 |
SizeAll | 四向箭頭 | 自由調整大小/移動 |
SizeNESW | 東北-西南雙向 | 對角線調整大小 |
SizeNS | 南北雙向 | 垂直調整大小 |
SizeNWSE | 西北-東南雙向 | 對角線調整大小 |
SizeWE | 西東雙向 | 水平調整大小 |
UpArrow | 向上箭頭 | 插入點指示、向上導航 |
VSplit | 垂直分割雙箭頭 | 垂直分割條調整 |
WaitCursor | 沙漏/轉圈 | 長時間操作、后台處理中 |
private void btnLongTask_Click(object sender, EventArgs e) {
Cursor original = this.Cursor;
this.Cursor = Cursors.WaitCursor;
try {
// 執行耗時操作...
Task.Delay(3000).Wait(); // 模擬
} finally {
this.Cursor = original; // 確保恢復
}
}
Application.UseWaitCursor = true; // 設置
// 執行操作...
Application.UseWaitCursor = false; // 恢復
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MyApp.Cursors.custom.cur")) {
if (stream != null) {
this.Cursor = new Cursor(stream);
}
}
Cursor.Hide(); // 全局隱藏
Cursor.Show(); // 全局顯示
// 或控件級:this.Cursor = Cursors.None; (需自定義透明光標)
WPF 使用 System.Windows.Input.Cursors 類,屬性名類似(如 Cursors.Wait、Cursors.Hand),用法:this.Cursor = Cursors.Wait;。支持 XAML 綁定:<Button Cursor="Hand" />。