調用外部鼠標樣式,一般情況有兩種,一種是調用鼠標文件cur、ani文件(cur是靜態光標文件,ani是動畫光標文件)。
做法,自定義光標文件嵌入dll和調用的方法。把鼠標樣式cur文件添加入資源文件(這曉得吧,就是打開項目的property,點擊資源,ctrl+v進去),記住在Resources裏面選擇cur文件,點擊屬性,修改生成操作爲嵌入的資源。(這樣做事爲了控件封裝時候一起封裝,如果你是在from中用,那當我沒說)
代碼如下:
this.Cursor = new Cursor(GetType(), "Resources.hmove.cur");
記住GetType()是爲了獲得Resources在哪個項目下,如果報錯,請檢查名字是否正確?是否選定資源爲嵌入的資源?
另外一種是直接把png、jpg圖片做爲鼠標光標。
public void SetCursor(Bitmap cursor, Point hotPoint)
{
int hotX = hotPoint.X;
int hotY = hotPoint.Y;
Bitmap myNewCursor = new Bitmap(cursor.Width*2 - hotX, cursor.Height*2 - hotY);
Graphics g = Graphics.FromImage(myNewCursor);
g.Clear(Color.FromArgb(0, 0, 0, 0));
g.DrawImage(cursor, cursor.Width - hotX, cursor.Height - hotY, cursor.Width, cursor.Height);
IntPtr iptr = myNewCursor.GetHicon();
this.FindForm().Cursor = new Cursor(iptr);
g.Dispose();
myNewCursor.Dispose();
cursor.Dispose();
}
調用方法 Bitmap a=(Bitmap)Bitmap.FromFile("myCur.png");
SetCursor(a, new Point(0, 0));
第二種可以向第一種轉換,使用ArtCursors鼠標編輯器,不會用也沒關係,只需要導入png,導出cur就成。因爲我驗證了第二種在調用多次的時候,會出現“GDI+一般性錯誤”的報錯提示。所以最好是調用一次儲存Cursor變量是最好的解決辦法。切忌反覆調用~