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 控件一起使用,效果很好!
    以上代码在VS2005下编译通过。

  • 相关阅读:
    (Java实现) 洛谷 P1106 删数问题
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
    (Java实现) 洛谷 P1553 数字反转(升级版)
    (Java实现) 洛谷 P1051 谁拿了最多奖学金
    (Java实现) 洛谷 P1051 谁拿了最多奖学金
    (Java实现) 洛谷 P1106 删数问题
    目测ZIP的压缩率
  • 原文地址:https://www.cnblogs.com/Randy0528/p/2891999.html
Copyright © 2011-2022 走看看