我想允许用户在我的UserControl中单击并向左/向右拖动以放大/缩小,但我希望拖动不限于实际控件的边界。 在释放鼠标单击之前,哪种事件或策略是跟踪控件和表单外部鼠标位置的正确方法?
提前感谢您的任何帮助或建议。
答案 0 :(得分:3)
在MouseDown事件处理程序中将Capture属性设置为true。即使鼠标离开客户区,您也会继续收到MouseMove消息。
public partial class UserControl1 : UserControl {
public UserControl1() {
InitializeComponent();
}
protected override void OnMouseDown(MouseEventArgs e) {
if (e.Button == MouseButtons.Left) this.Capture = true;
base.OnMouseDown(e);
}
protected override void OnMouseMove(MouseEventArgs e) {
if (e.Button == MouseButtons.Left) {
// Your dragging logic here...
Console.WriteLine(e.Location);
}
base.OnMouseMove(e);
}
}
答案 1 :(得分:0)
我认为你是在Mouse.Capture之后,或类似的东西。