程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> .NET陷阱 二 行為詭異的光標

.NET陷阱 二 行為詭異的光標

編輯:關於.NET

我們的軟件中需要很多自定義的光標,以便在用戶交互過程中進行必要的提示。我們開始的做法是將光標放到資源文件中,然後用類似下面的代碼加載:

var cursor = new Cursor(new MemoryStream(Resource.OpenHandIcon));   
... ...   
if (useDefaultCursor)   
{   
    control.Cursor = Cursors.Default;   
}   
else
{   
    control.Cursor = cursor;   
}

但在測試過程中應該顯示自定義光標時,總是時而替換成功,時而替換不成功。

原來是.NET中提供的Cursor類的問題,Cursor的構造函數不能加載黑白顏色之外的光標!但可以通過下面的代碼繞開這一限制:
 

public static Cursor LoadResourceCursor(byte[] data)   
{   
    var path = Path.GetTempFileName();   
    File.WriteAllBytes(path, data);   
    return new Cursor(LoadCursorFromFile(path));   
}   
       
[System.Runtime.InteropServices.DllImport("user32.dll")]   
private static extern IntPtr LoadCursorFromFile(string fileName);

這樣處理後所有光標就都能正常使用了。

出處:http://www.cnblogs.com/brucebi/archive/2013/04/02/2995888.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved