zoukankan      html  css  js  c++  java
  • c#实现Form窗体始终在桌面最前端显示

    方法一

    //调用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);

  • 相关阅读:
    ES6 generator生成器
    ES6 Class类(简单理解封装和继承)
    谷歌(chrome)浏览器下载文件另存为其它地址
    ES6 中的解构数组和对象
    获取数组中某一个元素的下标
    删除数组对象中某一个指定的对象
    jquery复选框全选功能
    正则获取字符串中的数字
    js刷新当前页面,刷新父页面
    找出最长序列的长度
  • 原文地址:https://www.cnblogs.com/IT-haidong/p/4668294.html
Copyright © 2011-2022 走看看