WinForm 窗口保持在屏幕最前面

WinForm(C#)开发,有多个窗口,遇到的情况是,打开了窗口A,然后点A以外的其他地方,A就被最小化了。

现在要实现的效果是,窗口A打开后,点A以外的区域时,A保持在所有窗口的最前面,不隐藏。

网上查询一番,找到了比较简单的方法:设置窗体的TopMost属性为true.

https://stackoverflow.com/questions/683330/how-to-make-a-window-always-stay-on-top-in-net

这个方法对于一般情况有效。

不过如果打开了A之后,在A基础上再打开B,那么即便B设置了TopMost=true, 点击B以外的地方,B还是会最小化。

再次查询,这次找到了比较彻底的办法:

在打开窗体是的时候,在窗体的  Form.Show()方法中,把父窗体 this 作为参数放进去:

formTreatRecord = new FormTreatRecord();
formTreatRecord.Show(this);
formTreatRecord.Focus();

实测有效,这个无论点击哪个区域,该窗体始终在最前面。

C#和VB都有效。

参考:https://stackoverflow.com/questions/29698453/how-to-keep-a-form-on-top-of-others-in-vb-net

你可能感兴趣的:(Windows桌面开发)