C# 我的图片框在光标后面,但光标不是';它没有居中
因此,光标在图像左上角偏移了几个像素 代码如下:C# 我的图片框在光标后面,但光标不是';它没有居中,c#,visual-studio,winforms,C#,Visual Studio,Winforms,因此,光标在图像左上角偏移了几个像素 代码如下: public Form1() { InitializeComponent(); } private void Form1_MouseMove(object sender, MouseEventArgs e) { pictureBox1.Left = MousePosition.X - (pictureBox1.Width/2); pictureBox1.Top = MousePosition.Y - (pictu
public Form1()
{
InitializeComponent();
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
pictureBox1.Left = MousePosition.X - (pictureBox1.Width/2);
pictureBox1.Top = MousePosition.Y - (pictureBox1.Height/2);
}
使用
e.Location
属性而不是MousePosition
:
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
pictureBox1.Left = e.Location.X - (pictureBox1.Width / 2);
pictureBox1.Top = e.Location.Y - (pictureBox1.Height / 2);
}
MousePosition
返回鼠标在屏幕坐标中的位置,而e.Location
返回鼠标相对于客户端边界的位置
编辑
要获得更平滑的移动,请尝试:
public Form1()
{
InitializeComponent();
pictureBox1.MouseMove += pictureBox1_MouseMove;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
OnMouseMove(e);
}
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
var location = PointToClient(MousePosition); // e.Location;
pictureBox1.Left = location.X - (pictureBox1.Width / 2);
pictureBox1.Top = location.Y - (pictureBox1.Height / 2);
}
使用
e.Location
属性而不是MousePosition
:
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
pictureBox1.Left = e.Location.X - (pictureBox1.Width / 2);
pictureBox1.Top = e.Location.Y - (pictureBox1.Height / 2);
}
MousePosition
返回鼠标在屏幕坐标中的位置,而e.Location
返回鼠标相对于客户端边界的位置
编辑
要获得更平滑的移动,请尝试:
public Form1()
{
InitializeComponent();
pictureBox1.MouseMove += pictureBox1_MouseMove;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
OnMouseMove(e);
}
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
var location = PointToClient(MousePosition); // e.Location;
pictureBox1.Left = location.X - (pictureBox1.Width / 2);
pictureBox1.Top = location.Y - (pictureBox1.Height / 2);
}
你能展示一张说明问题的图片吗?Afair光标点位于左上角,而不是中间。您可能必须考虑到这一点(也加上一半)。
MousePosition
为您提供鼠标在屏幕坐标中的位置。您能展示一张图片来说明问题吗?Afair光标点位于左上角,而不是中间。您可能需要考虑到这一点(也加上一半)。MousePosition
提供鼠标在屏幕坐标中的位置。谢谢,它可以工作,但有没有办法让它不那么滞后。我注意到MousePosition不起作用,但程序运行得很顺利,但e.location起作用,但当我移动鼠标时有点结巴。@BioloItz尝试向pictureBox1.MouseMove
event添加一个事件句柄。谢谢,它起作用了,但有没有办法让它不那么滞后。我注意到MousePosition不起作用,但程序运行得很顺利,但e.location可以工作,但当我移动鼠标时,它有点结巴。@BioloItz尝试向pictureBox1.MouseMove
event添加一个事件句柄。