
我试过了:
protected overrIDe voID OnMouseDown(MouseEventArgs e){ while (e.button == System.windows.Forms.Mousebuttons.left) { this.Location = e.Location; }} 和
protected overrIDe voID OnMouseMove(MouseEventArgs e){ while (e.button == System.windows.Forms.Mousebuttons.left) { this.Location = e.Location; }} 但这些都不奏效.任何帮助表示赞赏,并提前感谢!
@H_404_24@解决方法 这是怎么做的:private Point _Offset = Point.Empty;protected overrIDe voID MouseDown(object sender,MouseEventArgs e){ if (e.button == Mousebuttons.left) { _Offset = new Point(e.X,e.Y); }}protected overrIDe voID MouseMove(object sender,MouseEventArgs e){ if (_Offset != Point.Empty) { Point newlocation = this.Location; newlocation.X += e.X - _Offset.X; newlocation.Y += e.Y - _Offset.Y; this.Location = newlocation; }}protected overrIDe voID MouseUp(object sender,MouseEventArgs e){ _Offset = Point.Empty;} _Offset在这里用于两个目的:在最初点击鼠标时跟踪鼠标在控件上的位置,并跟踪鼠标按钮是否关闭(这样当鼠标按下时控件不会被拖动光标越过它而按钮没有按下).
你绝对不希望将此代码中的ifs切换为while,因为它会产生影响.
总结以上是内存溢出为你收集整理的C# – 将控件移动到鼠标位置全部内容,希望文章能够帮你解决C# – 将控件移动到鼠标位置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)