如何将窗口锁定到另一个窗口? [的WinForms]

时间:2009-05-09 17:18:55

标签: c# winforms

我希望我的软件在首次启动时显示一个教程窗口,并让这个窗口显示为“锁定”到主窗口的右侧,这样,每当我移动主窗口时,孩子都会跟随。我怎么能做到这一点?

3 个答案:

答案 0 :(得分:4)

John Gietzen所述,您需要捕获主窗口的移动并重新定位子窗口。

但是,如果用户直接移动子窗口,这将会中断。

如果你想要强制两者永远在一起,你会更好地把它们放在一个窗口中。有两个窗口并试图覆盖正常的Windows行为可能不是一个干净的方法 - 它会比仅仅尝试创建一个“正常”窗口更令人困惑。

答案 1 :(得分:2)

通常,您需要为父窗口捕获OnMove事件并重新定位子窗口。

我不相信有一种WinAPI方法可以做到这一点,所以这将是一些手动编码。

答案 2 :(得分:2)

正如John Gietzen所说,没有办法让Windows为你做这件事,如果你通过处理OnMove事件来做到这一点,当用户移动或调整主窗口大小时,你会遇到延迟。

另一种方法是加宽主窗口并将教程窗口放在右侧。