How to get the handle of the topmost form in a WinForm app?

前端 未结 5 1938
耶瑟儿~
耶瑟儿~ 2020-12-06 02:52

I have a WinForm app that has other child forms (not mdi). If the user presses \"Esc\" the topmost form should be closed even if it doesn\'t have the focus.

I can u

5条回答
  •  生来不讨喜
    2020-12-06 03:21

    I know this is a 4 yr old thread, but I had a similar problem and just came up with an alternative solution just in case anyone else stumbles on this question and doesn't want to mess around with Win32 calls.

    I assume the top-most form will be the one that was last activated. So you could keep a separate collection of forms, similar to Application.OpenForms, except this collection would be ordered by when each was last activated. Whenever a form is activated, move it to the first item of the collection. Whenever you see the ESC key, you would close collection[0] and remove it.

提交回复
热议问题