C#自定义控件光标位置

时间:2015-12-10 19:21:48

标签: c# winforms

我正在制作自定义控件滑块,以便我自己调整外观。

但是,我找不到相对于控件获取光标位置的方法。 在将控件放入我的程序之后,可以很容易地为每个控件编码。但是我想在自定义控件项目中拥有完整的功能,并且只需要担心在我的程序中获取滑块的值。

所以我需要在自定义控件项目中完成光标跟踪。 我在这里试过使用这个活动:

private void CustomSlider_MouseDown(object sender, MouseEventArgs e)
    {

    }

但我唯一能够获得的是“全球化”。屏幕的光标位置,除非我知道控件的位置,否则对我没用。

我希望我的问题很明确,谢谢。

1 个答案:

答案 0 :(得分:0)

要获取控件的事件处理程序或相应的虚拟方法中的光标位置,请使用MouseEventArgs.LocationMSDN)属性:

class CustomControl : Control {
    protected override void OnMouseDown(MouseEventArgs e) {
        Point cursorPos = e.Location;
    }
}

要获取控件外的光标位置,请使用Control.MousePositionMSDN)静态属性和PointToClient()MSDN)方法:

CustomControl ctrl = ...
Point cursorPos = ctrl.PointToClient(Control.MousePosition);