你QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法:

要么重写需要弹出的窗体的事件:

protected override CreateParams CreateParams    
{
    get
    {
        const int WS_EX_NOACTIVATE = 0x08000000;
        CreateParams cp = base.CreateParams;
        cp.ExStyle |= WS_EX_NOACTIVATE;
        return cp;
    }
}
// CreateParams 在 System.Windows.Forms.Controls 命名空间下

要么调用系统钩子:

// 引用系统钩子
[DllImport("user32.dll")]
public static extern IntPtr GetActiveWindow();
 
[DllImport("user32.dll")] 
public static extern IntPtr SetActiveWindow(IntPtr hwnd);
  
// 在窗口弹出时做以下处理
IntPtr activeForm = GetActiveWindow(); // 先得到当前的活动窗体 
new form2.Show(false); // 弹出新窗体
SetActiveWindow(activeForm); // 在把焦点还给之前的活动窗体

最新文章

  1. 转:EntityFramework查询--联合查询(Join,GroupJoin)
  2. MySQL单机load过高问题讨论
  3. iOS 开发之内购 – AppStore
  4. 【转载】C++针对ini配置文件读写大全
  5. shell 脚本中 命令
  6. POJ1062 昂贵的聘礼 【DFS】
  7. 什么是“Bash”破绽?
  8. POJ 2538 WERTYU水的问题
  9. 数据结构 - AVL木
  10. servlet第2讲(下集)----创建servlet实例(继承GenericServlet)
  11. Ubuntu常用软件安装(附带地址和卸载自带软件)
  12. 织梦cms/dedecms清理冗余废弃未引用图片方法
  13. jQuery CSS 类
  14. 数据分析三剑客之Matplotlib
  15. [模板] 数学基础:快速幂/乘/逆元/exGCD/(ex)CRT/(ex)Lucas定理
  16. 7、Dockerfile详解
  17. Codeforces Round #551 (Div. 2) D. Serval and Rooted Tree (树形dp)
  18. lecture1-Word2vec实战班-七月在线nlp
  19. [Redis]Redis的数据类型
  20. C#基础第九天-作业-储蓄账户(SavingAccount)和信用账户(CreditAccount)

热门文章

  1. 通过pycurl模块添加put和delete请求
  2. 参数(parameter)和属性(Attribute)的区别
  3. BZOJ 4247: 挂饰 题解
  4. 『TCP/IP详解——卷一:协议』读书笔记——03
  5. UILabel和UIButton
  6. SR触发器和JK触发器
  7. Python 输出文字带颜色
  8. Dynamic CRM 2015学习笔记 系列汇总
  9. HTML 中禁用鼠标右键和不能选中文字
  10. Color颜色对照表