C#创建一个跟随鼠标的图像

时间:2014-11-27 05:10:23

标签: c# image winforms mouse

我正在尝试在C#中的winForm中创建一个程序,其中图像将在应用程序外部跟随鼠标。

我不知道如何在表单之外绘制图像,更不用说按照鼠标操作了。我的解决方案是 - 创建一个无边框的形式并让它跟随鼠标 - 但是这个解决方案不起作用,因为我无法通过代码移动表单。

鼠标需要能够独立于此图像单击并运行。

我将如何做到这一点?

2 个答案:

答案 0 :(得分:2)

  

必须这样做而不改变鼠标的使用方式。

为扩展样式设置WS_EX_TRANSPARENT,使表单忽略鼠标单击。将TopMost设置为True,将Opacity设置为小于100%的值,使其半透明。使用计时器移动表单。类似的东西:

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
        this.Opacity = .5;
        this.TopMost = true;
        this.BackColor = Color.Yellow;
        this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

        // Makes the form circular:
        System.Drawing.Drawing2D.GraphicsPath GP = new System.Drawing.Drawing2D.GraphicsPath();
        GP.AddEllipse(this.ClientRectangle);
        this.Region = new Region(GP);
    }

    const int WS_EX_TRANSPARENT = 0x20;

    protected override System.Windows.Forms.CreateParams CreateParams
    {
        get
        {
            CreateParams cp = base.CreateParams;
            cp.ExStyle = cp.ExStyle | WS_EX_TRANSPARENT;
            return cp;
        }
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        Point pt = Cursor.Position;
        pt.Offset(-1 * this.Width / 2, -1 * this.Height / 2);
        this.Location = pt;
    }

}

答案 1 :(得分:1)

检查这个帖子:

How to drag and move winform using mouse

似乎你想做这样的事情。

希望这有帮助!