gpt4 book ai didi

c# - 模拟拖动窗口标题栏的控件

转载 作者:太空狗 更新时间:2023-10-29 20:52:19 24 4
gpt4 key购买 nike

我构建了一个自定义控件,我希望人们可以单击并拖动我的控件,就像他们在窗口标题栏上拖动一样。执行此操作的最佳方法是什么?

到目前为止,我一直未能成功利用鼠标按下、向上和移动事件来破译何时需要移动窗口。

最佳答案

除了我的其他答案之外,您还可以像这样在控件中手动执行此操作:

Point dragOffset;

protected override void OnMouseDown(MouseEventArgs e) {
base.OnMouseDown(e);
if (e.Button == MouseButtons.Left) {
dragOffset = this.PointToScreen(e.Location);
var formLocation = FindForm().Location;
dragOffset.X -= formLocation.X;
dragOffset.Y -= formLocation.Y;
}
}

protected override void OnMouseMove(MouseEventArgs e) {
base.OnMouseMove(e);

if (e.Button == MouseButtons.Left) {
Point newLocation = this.PointToScreen(e.Location);

newLocation.X -= dragOffset.X;
newLocation.Y -= dragOffset.Y;

FindForm().Location = newLocation;
}
}

编辑:经过测试和修复 - 这现在确实有效。

关于c# - 模拟拖动窗口标题栏的控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2384381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com