Wie kann ich ein Fenster immer über einem anderen Fenster halten, das immer oben bleibt? Nicht, dass es über allen anderen Fenstern bleiben muss, ich brauche es nur, um über einem bestimmten Fenster zu bleiben.
Dank der Antwort von SLaks und einigen Kommentaren konnte ich herausfinden, wie eine Kind-Eltern-Beziehung zwischen meinen Formen festgelegt wurde. Ich konnte Form.Show(owner)
nicht verwenden, weil das Formular, das ich behalten wollte, vor dem anderen Formular angezeigt wurde. Ich habe mit Reflector den Code hinter Form.Show(owner)
untersucht und festgestellt, dass sich alles hinter den Kulissen auf SetWindowLong in der Windows-API.
Form.Show(owner)
ruft SetWindowLong mit einem nIndex
von -8
auf. Die MSDN-Online-Dokumentation wird Ihnen davon nicht berichten, aber laut Winuser.h ist eine der für nIndex
verfügbaren Konstanten GWL_HWNDPARENT
, die den Wert -8
haben. Sobald ich diese Punkte verbunden habe, war das Problem ziemlich einfach zu lösen.
In diesem Beispiel wird das übergeordnete Element des Fensters festgelegt, auch wenn es bereits angezeigt wird:
%Vor%