本篇文章将记载一个之前没遇到的问题,有一个功能是由C++方面通过回调函数来进行一个弹窗展示数据的操作。由于弹窗的操作并非用户或者在C#写的界面上完成的,所以当有应用程序覆盖在主窗体之上时进行了弹窗操作,弹窗就会将覆盖在主窗体之上的应用程序夹在弹窗与应用程序之间。
这个问题要怎么解决呢?
在弹窗进行ShowDialog方法之前让主窗体执行Activate方法,主窗体执行Activate方法后会变为前台活动窗口,就会将主窗体之上的应用程序覆盖掉,之后为弹窗窗体设置Owner。防止在切换时出现父窗体会在子窗体上的BUG。
可以将弹窗窗体的ShowInTaskbar属性设置为False,这样的话在底部任务栏就不会有弹窗自己的任务,会和主窗体的任务栏合并到一起。