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);

  • 相关阅读:
    利用JBoss漏洞拿webshell方法
    jboss漏洞导致服务器中毒
    dubbo bug之 Please check registry access list (whitelist/blacklist)的分析与解决
    将list转为json字符串
    MySQL语句给字段值加1
    java int怎么转换为string
    HttpURLConnection如何添加请求头?
    eclipse下载egit插件,实现代码git同步问题
    eclipse编译项目用maven编译问题
    fastjson将java list转为json字符串
  • 原文地址:https://www.cnblogs.com/IT-haidong/p/4668294.html
Copyright © 2011-2022 走看看