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

  • 相关阅读:
    Android开发之修改Manifest中meta-data的数据
    Android开发之StrictMode
    Cookie默认不设置path时,哪些请求会携带cookie数据
    Servlet中的请求转发
    AndroidCamera开发学习笔记01
    AsyncTask源码解读
    Android Studio自定义签名文件
    Kotlin:Android世界的Swift
    C# 传值给C++
    .NET CLR 运行原理
  • 原文地址:https://www.cnblogs.com/IT-haidong/p/4668294.html
Copyright © 2011-2022 走看看