c# 设置窗体始终最前端
来源:互联网 发布:那家博客公司数据准确 编辑:程序博客网 时间:2024/05/21 16:56
方法一:
//调用API
[System.Runtime.InteropServices.DllImport("user32", CharSet = System.Runtime.InteropServices.CharSet.Auto, ExactSpelling = true)]
public static extern IntPtr GetFocus(); //获得本窗体的句柄
[System.Runtime.InteropServices.DllImport("user32", EntryPoint = "SetForegroundWindow")]
public static extern bool SetFocus(IntPtr hWnd);//设置此窗体为活动窗体
// 定义变量,句柄类型
public IntPtr han;
……
private void Form1_Load(object sender, EventArgs e){
//在窗体加载的时候给变量赋值,即将当前窗体的句柄赋给变量
han = this.Handle;
}
……
private void timer1_Tick(object sender, EventArgs e){
// 加载一个定时器控件,验证当前WINDOWS句柄是否和本窗体的句柄一样,如果不一样,则激活本窗体
if (han != GetFocus()){
SetFocus(han);
}
this.WindowState = FormWindowState.Normal;
}
方法二:
[System.Runtime.InteropServices.DllImport("user32")]
private static extern IntPtr GetActiveWindow();//获取当前窗体的活动状态
// 判断当前窗口是否处于活动状态的方法
private bool ThisIsActive(){ return (GetActiveWindow() == this.Handle);}
private void timer1_Tick(object sender, EventArgs e){
if (!ThisIsActive()){
this.Activate();
}
this.WindowState = FormWindowState.Normal;
}
方法三
[DllImport("user32")]
private static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32")]
private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
在窗体On_Load事件中添加(Santos的代码):
IntPtr hDeskTop=FindWindow("Progman", "Program Manager");
SetParent(this.Handle,hDeskTop);
- c# 设置窗体始终最前端
- c#实现Form窗体始终在桌面最前端显示
- 实现Form窗体始终在桌面最前端显示
- C# window窗体最前端
- 窗体始终在最前面
- VB让窗体始终处于最前面
- Chrome始终位于最前端的解决办法
- 制作透明窗体/始终位于最上层的窗体
- WPF 窗体显示最前端
- 002最前端显示窗体
- Java:始终在桌面最顶层显示窗体
- 谷歌浏览器始终在最前端的问题
- Delphi 设置窗体的属性(最前端显示、淡入淡出效果、滑动效果)
- c# 窗体位置设置
- c#设置启动窗体
- c# 设置窗体位置
- C#最基础窗体剖析
- WinFrom窗体始终置顶
- TCp / Ip 简介
- 读取xml节点
- 黑马程序员——Sql Server 2008 创建job步骤
- C++即时通讯实现原理及常见问题
- java经典面试题
- c# 设置窗体始终最前端
- 如何优化手机网站
- 2012 macbook pro md101 安装固态硬盘和内存 总结
- 黑马程序员_数据绑定,INotifyPropertyChanged接口,DataContext
- 黑马程序员_ADO.NET连接数据库
- c# 悬浮窗口
- 获取数据窗口数据列的数据类型
- hdu 2117 (模拟除法运算)
- 25个很酷的jQuery倒计时脚本–添加动态计数器!