zoukankan      html  css  js  c++  java
  • 解决 WinForm 重写 CreateParams 隐藏窗口以后的显示问题

    WinForm 启动时隐藏窗体最简单有效的办法是重写 CreateParams

    protected override CreateParams CreateParams
    {
        get
        {
            base.Visible = false;
            return base.CreateParams;
        }
    }

    但是想要再把这个窗体显示出来, this.Show() 或者 this.Visible = true 都是无能为力的。

    怎么办?在 Win32 API 里面找找看吧,

    BOOL ShowWindow(HWND hWnd, int nCmdShow) 这个看上起不错,但是调用以后窗体仍然不会显示出来。

    再找,

    BOOL SetParent(HWND hWndChild, HWND hWndNewParent )

    OK,在获取到 this.Handle 以后调用以下方法,窗体终于显示出来了

    SetParent(this.Handle, 0);
    

    Win32 API 方法声明以及 P/Invoke 导入不在本文说明范围。

  • 相关阅读:
    进度3
    进度2
    进度1
    库存物资管理系统
    课程管理系统
    文件与流作业
    bzoj4027: [HEOI2015]兔子与樱花
    bzoj2067: [Poi2004]SZN
    bzoj2071:[POI2004]山洞迷宫
    bzoj1063: [Noi2008]道路设计
  • 原文地址:https://www.cnblogs.com/towerbit/p/11399876.html
Copyright © 2011-2022 走看看