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

相关推荐
LccKyI13 分钟前
C#学习day05(开发福彩双色球系统附思维导图)
开发语言·学习·c#
zzz_236815 分钟前
TencentDB-Agent-Memory 深度解析:让多个 Agent 共享项目经验的记忆中枢
java·开发语言·jvm·人工智能·agent·memory·tencent db
vx-程序开发42 分钟前
django医院预约挂号系统---附源码23353
java·javascript·spring boot·python·eclipse·django·php
金斗潼关44 分钟前
ysoserial的使用
java
ruleslol1 小时前
volatile 关键字
java
charlie1145141911 小时前
IMX6ULL WM8960 的移植——前置介绍
开发语言·c++·开源项目·嵌入式linux
迷迭香yy1 小时前
Python实战:涨停板“假封板”识别系统的工程实现
开发语言·人工智能·python
charlie1145141911 小时前
Cinux是如何管理进程的 —— 上下文与调度
开发语言·c++·操作系统·开源项目
lilian2331 小时前
Harmony os 技术实战|拼豆制图10:把取消、解析失败和保存失败写成可恢复状态机
java·javascript·华为·harmonyos
-银雾鸢尾-2 小时前
C#中的协变和逆变
开发语言·c#