我在某个 Form 上调用 Form.Show() 并在之后做一些事情,这会导致 Shown Form 上的一些更新。
我想在这段时间内使用 SetWindowPos 将此窗口窗体移动到另一个位置和另一个进程。可悲的是,调用 SetWindowPos 完全没有任何作用。可能是因为从不怠速?
任何想法谁来解决这个问题?
谢谢
编辑:一些代码:
main.Show();
main.initBase(); //Takes 2-3 seconds
main.HideMainForm(); //Moves the form to (10000, 10000), to hide it (can't change that it's an old programm)
在main.Shown
事件中,我调用了另一个程序,而不是调用
SetWindowPos(pd.CurrentHandle, HWND_TOPMOST, r.X, r.Y, r.Width, r.Height, SetWindowPosFlags.DoNotChangeOwnerZOrder);
其中 r 是所选显示器的矩形
我试过了
EventHandler ev = new EventHandler((s, e) =>
{
main.Close();
ev = new EventHandler((s2, e2) => { });
});
main.Shown += ev;
main.ShowDialog();
main.Show();
这工作正常,但只是丑陋的代码,我正在努力寻找更好的解决方案。