zoukankan      html  css  js  c++  java
  • WinForm 之 程序启动不显示主窗体

      在 WinForm 程序启动时,不显示主窗体的实现方法主要有以下5种,第五种最简单,而且效果也不错,第四种方法也值得推荐。

      实例代码如下:

    //隐藏窗体的方法1/5:不指定任何窗体为主窗体
    //注意:通常,在一个程序中,关闭主窗体,就可以关闭应用程序。
    //但是在没有主窗体中,不行。
    //只能使用Application.Exit()才能关闭应用程序。
    //using可以保证Application结束前,关闭MyMainForm
    using (new Form1())
    {
      Application.Run();
    };
    //Application.Run(new Form1());

    //隐藏窗体的方法2/5: //通过close()关闭主窗口同时可以关闭应用程序 protected override CreateParams CreateParams {   get   {     Hide();     return base.CreateParams;   } }

    //隐藏窗体的方法3/5: //这种方法仍然不能用Close主窗口的方式来关闭应用程序, 还得使用Application.Exit。 protected override void SetVisibleCore( bool value) {   base.SetVisibleCore(false); }
    //注意:方法2和3 使用Show好像没办法调出主窗口,比较郁闷。

    //隐藏窗体的方法4/5 part1/2: 推荐使用!!!
    //ApplicationContext实质上就是一个Application与主窗体之间的连接器, //掌管着二者之间的互动关系。其中最主要的,就是负责在主窗体 //关闭时结束线程。既然如此,我们只要根据需要自定义一个ApplicationContext就可以了 internal class HideOnStartupApplicationContext : ApplicationContext {   private Form mainFormInternal; // 构造函数,主窗体被存储在mainFormInternal   public HideOnStartupApplicationContext( Form mainForm)   {     this.mainFormInternal = mainForm;
        this.mainFormInternal.Closed += new EventHandler(mainFormInternal_Closed);   }

    // 当主窗体被关闭时,退出应用程序   void mainFormInternal_Closed(object sender, EventArgs e )   {     Application.Exit();   } } //在Main中作如下修改: HideOnStartupApplicationContext context = new HideOnStartupApplicationContext( new Form1()); Application.Run(context );

    //隐藏窗体的方法5/5: 推荐使用!!! //在构造函数中或者直接设置form属性 this.ShowInTaskbar = false; this.WindowState = FormWindowState.Minimized;

      程序中配合 notifyIcon 控件一起使用,实现程序最小化到托盘,效果很好!

  • 相关阅读:
    对es6中Promise和async的理解
    js里面的map、filter、forEach、reduce、for in、for of等遍历方法
    浏览器怎么解析一个hmtl文档
    js获取浏览器版本
    js中的浅复制和深复制
    作为一个程序员,如何调试抓取跳转页面前发送的请求
    escape、unescape、encodeURIComponent、decodeURLComponent
    css超过一定长度显示省略号 强制换行
    gojs去除水印
    版本控制系统svn的超基础使用
  • 原文地址:https://www.cnblogs.com/xinaixia/p/6219123.html
Copyright © 2011-2022 走看看