gpt4 book ai didi

c# - 用鼠标移动 PictureBox

转载 作者:行者123 更新时间:2023-11-30 19:00:59 26 4
gpt4 key购买 nike

我正在为 Windows Mobile (Compact Framework 2.0) 开发一个应用程序。它有一个带 PictureBox 的 WinForms。

我想移动PictureBox的图片,但是不知道怎么操作,所以选择移动孔洞的PictureBox。

为此,我使用了这个事件:

private void imagenMapa_MouseMove(object sender, MouseEventArgs e)
{
imagenMapa.Left = e.X;
imagenMapa.Top = e.Y;
this.Refresh();
}

但是,当我移动 PictureBox 时,它会闪烁并到处移动。

我做错了什么?

最佳答案

实际代码(需要 .NET Framework 3.5 及更高版本,不确定在 Compact Framework 中是否可用)...

// Global Variables
private int _xPos;
private int _yPos;
private bool _dragging;

// Register mouse events
pictureBox.MouseUp += (sender, args) =>
{
var c = sender as PictureBox;
if (null == c) return;
_dragging = false;
};

pictureBox.MouseDown += (sender, args) =>
{
if (args.Button != MouseButtons.Left) return;
_dragging = true;
_xPos = args.X;
_yPos = args.Y;
};

pictureBox.MouseMove += (sender, args) =>
{
var c = sender as PictureBox;
if (!_dragging || null == c) return;
c.Top = args.Y + c.Top - _yPos;
c.Left = args.X + c.Left - _xPos;
};

关于c# - 用鼠标移动 PictureBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/570582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com