我的应用程序中有三个窗口,分别命名为 Form1、Form2 和 Form3(主窗体)。Form2 可以停靠到 Form1 中。对应的属性设置如下:
Form1->DockSite = true;
Form2->DragKind = dkDock; Form2->DragMode = dmAutomatic;
Form3->DockSite = false;
开始拖放操作之前的窗口状态显示在 screenshot1 上。开始拖放操作后的窗口状态显示在屏幕截图2上。如您所见,在开始拖动操作后,Form3 立即移动到前台. 将 Form2 移动到 Form1 上的可停靠区域后,屏幕上会出现灰色矩形,指示停靠位置(即使此停靠位置隐藏在主窗体下)。释放鼠标左键后,Form2 正确停靠在 Form1 中,主窗体再次进入后台。如何在拖动过程中禁止主窗口(Form3)在 Form1 之上移动?我怀疑这与主窗体之上的 TAdvDockPanel 有关。在实践中,即使我想要,我也无法将 Form2 停靠在主窗体中,所以我不明白为什么 VCL 在无事可做时将主窗口移动到前台?