C# 窗体永远在最前

C# 窗体永远在最前

1、调用系统API

csharp 复制代码
 public const int HWND_TOP = 0;
 public const int HWND_BOTTOM = 1;
 public const int HWND_TOPMOST = -1;
 public const int HWND_NOTOPMOST = -2;

 //设置此窗体为活动窗体:
 //将创建指定窗口的线程带到前台并激活该窗口。键盘输入直接指向窗口,并为用户更改各种视觉提示。
 //系统为创建前台窗口的线程分配的优先级略高于其他线程。
 [DllImport("user32.dll", EntryPoint = "SetForegroundWindow")]
 public static extern bool SetForegroundWindow(IntPtr hWnd);

 //设置此窗体为活动窗体:
 //激活窗口。窗口必须附加到调用线程的消息队列。
 [DllImport("user32.dll", EntryPoint = "SetActiveWindow")]
 public static extern IntPtr SetActiveWindow(IntPtr hWnd);

 //设置窗体位置
 [DllImport("user32.dll", CharSet = CharSet.Auto)]
 private static extern int SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int Width, int Height, int flags);

2、函数调用(放在构造或Load)

csharp 复制代码
 // 设置窗体显示在最上层
 SetWindowPos(this.Handle, -1, 0, 0, 0, 0, 0x0001 | 0x0002 | 0x0010 | 0x0080);
 // 设置本窗体为活动窗体
 SetActiveWindow(this.Handle);
 SetForegroundWindow(this.Handle);
 // 设置窗体置顶
  this.TopMost = true;

文章抄录自 c#让窗体永在最前 调用windows api 将窗体设为topmost

相关推荐
Chan1612 分钟前
场景题:CPU 100% 问题怎么排查?
java·数据库·redis·后端·spring
basketball61635 分钟前
python 的对象序列化
开发语言·python
qq_3363139336 分钟前
java基础-IO流(网络爬虫/工具包生成假数据)
java·爬虫·php
fie88891 小时前
钢结构件制造车间生产调度实例:MATLAB实现(基于遗传算法)
开发语言·matlab·制造
沐知全栈开发1 小时前
PHP 安装指南
开发语言
桦说编程1 小时前
滑动窗口限流器的演进之路:从调度器实现到 Packed CAS
java·后端·性能优化
开开心心_Every1 小时前
安卓后台录像APP:息屏录存片段,行车用
java·服务器·前端·学习·eclipse·edge·powerpoint
初次攀爬者1 小时前
SpringBoot 整合 JWT + Redis 实现登录鉴权
java·redis·后端
悦悦妍妍1 小时前
spring-ioc
java