c#避免弹出窗口获取焦点

来源:互联网 发布:mac换主板 编辑:程序博客网 时间:2024/05/22 12:07

比如我们正在编写一份文档,这时如果弹出一个窗口的话就会打断我们的操作,如何使窗口弹出时不影响用户当前的操作呢?

可以利用系统钩子,在弹出窗口前获取当前的活动窗口,弹出窗口后将活动窗口重新还原

 

[System.Runtime.InteropServices.DllImport("user32.dll")]          public static extern IntPtr GetActiveWindow();//获得当前活动窗体         [System.Runtime.InteropServices.DllImport("user32.dll")]          public static extern IntPtr SetActiveWindow(IntPtr hwnd);//设置活动窗体


在弹出窗口的地方使用:

IntPtr activeForm = GetActiveWindow();//A弹出窗口前获得当前活动窗口form.show();//要弹出的窗口SetActiveWindow(activeForm);//B换回活动窗口


 

0 0
原创粉丝点击