WinForm 之 程序启动不显示主窗体

发布时间:2017-1-19 12:32:41 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"WinForm 之 程序启动不显示主窗体",主要涉及到WinForm 之 程序启动不显示主窗体方面的内容,对于WinForm 之 程序启动不显示主窗体感兴趣的同学可以参考一下。

WinForm 之 程序启动不显示主窗体

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

  实例代码如下:

//隐藏窗体的方法1/5:不指定任何窗体为主窗体//注意:通常,在一个程序中,关闭主窗体,就可以关闭应用程序。//但是在没有主窗体中,不行。//只能使用Application.Exit()才能关闭应用程序。//using可以保证Application结束前,关闭MyMainFormusing (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 控件一起使用,实现程序最小化到托盘,效果很好!


上一篇:Hadoop MapReduce编程 API入门系列之FOF(Fund of Fund)(二十三)
下一篇:Cisco ASA使用证书加密

相关文章

相关评论