我在做一个控件
控件里有一个Panel,我想获得鼠标相对于这个Panel的坐标(也就是相对于Panel左上角的位置)
我试过了很多方法
Point pos=this.Panel1.PointToClient(Control.MousePosition);
Point pos=this.Panel1.PointToClient(Cursor.Position);
都不行
把编译成的dll用到一个form上,所获得的pos.x和pos.y还是会随着该控件在form上的位置改变而改变,改变form在屏幕上的位置时,值也改变。这说明所得到的还不是相对于原来控件中Panel的位置。
急死我了,有没有哪位朋友明白的,谢谢了!
控件里有一个Panel,我想获得鼠标相对于这个Panel的坐标(也就是相对于Panel左上角的位置)
我试过了很多方法
Point pos=this.Panel1.PointToClient(Control.MousePosition);
Point pos=this.Panel1.PointToClient(Cursor.Position);
都不行
把编译成的dll用到一个form上,所获得的pos.x和pos.y还是会随着该控件在form上的位置改变而改变,改变form在屏幕上的位置时,值也改变。这说明所得到的还不是相对于原来控件中Panel的位置。
急死我了,有没有哪位朋友明白的,谢谢了!
private void panel1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
textBox1.Text = "X:" + e.X.ToString() ;
textBox2.Text = "Y:" + e.Y.ToString();
} private void panel1_MouseLeave(object sender, System.EventArgs e)
{
textBox1.Text = "";
textBox2.Text = "";
}
private System.Drawing.Point _currentPoint = new Point(0, 0);
public System.Drawing.Point CurrentPoint
{
get
{
return _currentPoint;
}
set
{
_currentPoint = value;
}
} private void panel1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
_currentPoint.X = e.X;
_currentPoint.Y = e.Y;
}
================================================================== Point p=new Point(MousePosition.X,MousePosition.Y); Point curp=Panel1.PointToClient(p);