请教各位,如果只有1个主窗口,关闭窗口后能不能用代码在吧主窗口SHOW出来?

解决方案 »

  1.   


    this.hide();
    System.Threading.Thread.Sleep(1000);
    this.Show();
      

  2.   

    进程主窗口关闭将导致消息循环退出, 进程结束.所以用隐藏/显示的办法.隐藏掉再重新激活, 可以用注册windows全局快捷键,
    或者使用系统栏图标的方式.
      

  3.   

    恩,也可以说是我想实现重启窗口的效果,但是this.close();之后再this.show();的话不行,因为
    this.close();之后程序就会关闭了
      

  4.   

    Form 类有个 FormClosing 事件
    看看那个事件的参数, 其中有窗口关闭的原因,
    以及用于取消窗口关闭的 Cancel 属性.你要做的类似:
        protected override void OnFormClosing(FormClosingEventArgs e)
        {
          base.OnFormClosing(e);
          if (!_quiting) {
            this.Hide();
            e.Cancel = true;
          }
        }_quiting 布尔指示是否程序退出的关闭
      

  5.   

    隐藏不行,因为我在研究directshow,directshow播放完1个视频后,在播放flash的时候,就会被directshow的视频窗口挡住了,
      

  6.   

    Application.Restart();这句是程序重启,关闭后自动重启
      

  7.   

    Application.Restart();这个方法我用过,但是重启不了
      

  8.   

    因为Application.Restart();之后程序重启1次以后就会自动关闭,我想让重启以后程序运行以后不自动关闭
      

  9.   

    用线程吧,要启程主程序时,先执行你flash的视频,结束视频后就会执行主窗体了,我们之前也有这样的功能的。并非重启。
      

  10.   

    用线程吧,要启程主程序时,先执行你flash的视频,结束视频后就会执行主窗体了,我们之前也有这样的功能的。并非重启。
      

  11.   

    我用了线程的,先执行的flash,然后播放视频,但视频播放后我要在播放falsh,这时flash就显示不出来,画面停在了视频结束时的状态
      

  12.   

    我是放在这里面的,让在这里重启
     private void FrmMail_FormClosed(object sender, FormClosedEventArgs e)
            {
                Application.Restart();
            }
      

  13.   

    主窗体代码:
    mainform.Visible=false;
    subform.ShowDialog();
    mainform.Visible=true;
      

  14.   

    或者谁对directshow有了解的,怎么把directshow创建的播放窗口给隐藏或者关闭
      

  15.   

    启动程序后创建一个进程(或者直接搞个服务),对你程序进行监控,如果你的程序结束,再Process.Start(Application.StartupPath+"你程序的名字包括扩展名")一个。
      

  16.   

    直接调用COLSE方法就可以了
      

  17.   

    还可以这样,不过自己造成的异常,有点……代码:
    Program类里面(应用程序的入口,不一定是Program类)
    static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                try
                {
                    Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
                    Application.ThreadExit += new EventHandler(Application_ThreadExit);
                    
                    Application.Run(new LoginUI());
                }
                catch (Exception) { ;}
            }        static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
            {
                Application.Restart();
            }        static void Application_ThreadExit(object sender, EventArgs e)
            {
                Application.Restart();
            }
      

  18.   

    你说的那个Process.Start(Application.StartupPath+"你程序的名字包括扩展名")一个我刚试了下好像不管用
      

  19.   

    改Program里面的代码不怎么好吧,有没有别的方法啊,
    Application.Restart();之后,程序是再次运行了,再次运行完之后就自动关闭了,
    但Application.Restart();之后,vs2008里面又可以再次运行了,