1

我想允许用户在我的 UserControl 中单击并向左/向右拖动以放大/缩小,但我希望拖动不限于实际控件的边界。什么样的事件或策略将是跟踪鼠标在控件和窗体之外的位置直到鼠标单击被释放的正确方法?

提前感谢您的任何帮助或建议。

4

2 回答 2

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);
    }
  }
于 2010-03-15T11:45:20.170 回答
0

我认为你是在Mouse.Capture或类似的东西之后。

于 2010-03-15T10:34:51.173 回答