Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Z-order和windows_.net_Windows_Winapi_Z Order - Fatal编程技术网

.net Z-order和windows

.net Z-order和windows,.net,windows,winapi,z-order,.net,Windows,Winapi,Z Order,我正在试图了解拥有的windows的行为 我有一个窗口A,它是窗口B的所有者(不是父窗口) 我有另一个窗口C,它是窗口D的所有者(不是父窗口) 假设windows的z顺序最初是A、B、C、D 然后,用户点击窗口B激活它 有时Z顺序会变成这样。C、 D,A,B 有时它会变成A,C,D,B 没有一个窗口具有最顶层的属性集。我正在使用.NET4.0。我知道一个拥有的窗口在z顺序中总是高于它的所有者,这在本例中是正确的。但是,当用户激活B时,我总是希望获得顺序C、D、A、B。唯一的方法是使用SetWin

我正在试图了解拥有的windows的行为

我有一个窗口A,它是窗口B的所有者(不是父窗口) 我有另一个窗口C,它是窗口D的所有者(不是父窗口)

假设windows的z顺序最初是A、B、C、D

然后,用户点击窗口B激活它

有时Z顺序会变成这样。C、 D,A,B 有时它会变成A,C,D,B


没有一个窗口具有最顶层的属性集。我正在使用.NET4.0。我知道一个拥有的窗口在z顺序中总是高于它的所有者,这在本例中是正确的。但是,当用户激活B时,我总是希望获得顺序C、D、A、B。唯一的方法是使用SetWindowPos?

将所有者窗口置于前台。乘坐过程中会出现自有窗口。用户通过单击它来激活B…对于您的建议,您的意思是收听该事件,然后打开窗口A吗?我想到了这一点,但希望有一个更好的解决方案。更好的解决方案是不创建多个主窗口的应用程序。看看你机器上的其他应用程序,比如VS。我认为当Z顺序发生变化时,你不会收到任何通知,因此这是不可能的。你的所有者和拥有的窗口是否在多个进程/线程中?所有者/所有者(以及父/子)窗口已附加其输入队列,并且已附加输入队列是一个很好的选择。