Как сделать так, чтобы графическое окно следовало за курсором c# windows формы - PullRequest
0 голосов
/ 23 февраля 2020

Я делаю стрелялку, в которой вы нажимаете на мишени, чтобы набрать очко, мне было интересно, как у меня это получилось, поэтому вместо курсора у меня есть поле для изображения, чтобы действовать как прицельная прицельная сетка.

1 Ответ

0 голосов
/ 24 февраля 2020

Может быть, вы можете достичь этой потребности, подписавшись на событие MouseMove формы. Затем найдите положение мыши с помощью кода и сбросьте положение PictureBox.

Вот демонстрация, к которой вы можете обратиться.

public Form1()
{
    InitializeComponent();
}

[DllImport("user32.dll", EntryPoint = "ShowCursor", CharSet = CharSet.Auto)]
public extern static void ShowCursor(int status);

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
    Point p1 = MousePosition;
    // Get the mouse position in the form
    Point p2 = PointToClient(p1);
    // Reset picturebox location
    pictureBox1.Location = new Point(p2.X - pictureBox1.Width /2 , p2.Y - pictureBox1.Height /2);
}

private void Form1_Load(object sender, EventArgs e)
{
    // Load picture
    pictureBox1.Image = Image.FromFile(@"D:\pic123\target.png");
    // Hide cursor
    ShowCursor(0);
}
...