如何在winform中用位图替换光标

时间:2012-05-18 06:11:03

标签: c# winforms

我在c#.net上的鼠标移动控制应用程序中开发了一个放大镜。我需要用放大镜控件替换光标(放大镜控件是一个图片框)。无论如何要做到这一点。

2 个答案:

答案 0 :(得分:4)

下面的示例代码显示了如何在Windows窗体上设置Cursor。也可以使用相同的方法为控件设置Cursor。

public class Form_With_A_Cursor_Example {
    public void Shows_A_Form_With_A_Cursor_Loaded_From_A_pictureBox() {         
        Form frm = new Form();
        PictureBox pb = new PictureBox() { Image = Image.FromFile( @"C:\Users\xxx\Pictures\someImage.bmp" ) };

        frm.Cursor = new Cursor( ( (Bitmap)pb.Image ).GetHicon() );

        frm.ShowDialog();
    }
}

答案 1 :(得分:2)

首先将位图添加到项目资源中:
项目 - > projectnameProperties->添加退出文件(从&#34旁边的菜单;添加资源")添加您的BMP

Bitmap b = new Bitmap(projectname.Properties.Resources.yourCursorName);
b.MakeTransparent(b.GetPixel(0,0));
Graphics g = Graphics.FromImage(b);
IntPtr ptr = b.GetHicon();
Cursor = new System.Windows.Forms.Cursor(ptr);

其中" projectname"是您项目的名称。