41:我看了一下你的代码,我觉得还不够简单,我的方法是这样的:
int x=0;
int y=0;
bool Press=false;
bool CanMove=true;
void P_MouseDown(...............)
{
x=e.X;
y=e.Y;
Press=true;
}
void P_MouseUp(...............)
{
Press=false;
}
void P_MouseMove(........)
{
if(Press&CanMove)
{
P.Left+=e.X-x;
P.Top+=e.Y-y;
}
}
我觉得这样是不是简单一点呀?但是也有缺点,Mouse如果移动一次,如果CanMove,那么P_MouseMove会被触发两次,虽然效果一样啦...但是这个缺点几乎没有表现出来