c#避免弹出窗口获取焦点
2013-12-18 19:27
211 查看
比如我们正在编写一份文档,这时如果弹出一个窗口的话就会打断我们的操作,如何使窗口弹出时不影响用户当前的操作呢?
可以利用系统钩子,在弹出窗口前获取当前的活动窗口,弹出窗口后将活动窗口重新还原
在弹出窗口的地方使用:
可以利用系统钩子,在弹出窗口前获取当前的活动窗口,弹出窗口后将活动窗口重新还原
[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换回活动窗口
相关文章推荐
- [WinForm] C#避免Panel(ScrollableControl)的子控件获取焦点时滚动条自动滚动
- C#让TopMost窗体弹出并置顶层但不获取当前输入焦点的终极办法
- 关于showmodaldialog 打开新窗口后提交表单操作时,避免弹出新窗口和避免从后台获取“新数据”后不能刷新当前模态页面的解决方案
- ligerUI调用$.ligerDialog.open弹出窗口,关闭后无法获取焦点问题
- ligerUI调用$.ligerDialog.open弹出窗口,关闭后无法获取焦点问题
- ligerUI调用$.ligerDialog.open弹出窗口,关闭后无法获取焦点问题
- C#让TopMost窗体弹出并置顶层但不获取当前输入焦点的终极办法
- C#让TopMost窗体弹出并置顶层但不获取当前输入焦点的终极办法
- C#代码像QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法
- ligerUI调用$.ligerDialog.open弹出窗口,关闭后无法获取焦点问题
- C# 获取窗口句柄
- [C# winform] 获取自定义弹出框的DialogResult值以及用户输入
- c# 获取移动硬盘信息、监听移动设备的弹出与插入事件
- android EditText 默认情况下不获取焦点(不弹出输入框)
- C#后台代码弹出页面或模式窗口
- [Win32]获取当前输入焦点窗口所属进程的进程ID
- 关于Android中EditText自动获取焦点并弹出键盘的相关设置
- 点击文字弹出一个DIV层窗口代码 【或FORM表单 并且获取点击按钮的ID值】
- C#使用Xamarin开发可移植移动应用(5.进阶篇显示弹出窗口与通讯中心)附源码