【问题标题】:C# - why this.Close(); dose not work for me?C# - 为什么 this.Close();不适合我吗?
【发布时间】:2020-03-20 15:53:57
【问题描述】:

我不擅长 ENG,所以你会看到一些不正确的拼写和糟糕的语法。我正在使用 Visual Studio 2015。

你好。首先,我是编程的新人

我在“this.Close();”遇到了一些麻烦,我需要一些帮助...

我试图在进度条达到 100 后简单地关闭加载表单,但它不会工作。

代码如下:

 private void pbar_timer_Tick(object sender, EventArgs e)
    {
        progressBar1.Value += 10;

            if(progressBar1.Value==100)
        {
            pbar_timer.Stop();
            new main().ShowDialog();
            this.Close();

        }

    }

嗯。我尝试了很多方法,但它不会工作...... 加载表单仍然会挂在屏幕上,当主表单出现时它不会消失..:|

如果你知道我该怎么做,请帮助我......

谢谢。

【问题讨论】:

  • 只需在 this.Close() 上设置一个调试器断点,您就会明白 ShowDialog() 的作用要好得多。为什么需要这段代码很难猜,也许是this

标签: c# formclosing


【解决方案1】:

ShowDialog() 方法会阻止您当前的流程,直到关闭新的“new main()”。 请改用Show()

【讨论】:

  • 谢谢。它有效,但现在它正在关闭每个表格。我该如何解决这个问题。
  • 如果初始窗体关闭,应用程序将完全关闭。不要关闭起始表格(你可以但要实现它会更复杂)。尝试使用Hide()而不是Close(),但是你必须保持对该表单的引用(一种常见的方法是使用静态变量,另一种方法是使起始表单成为new main()的属性),这样你就可以@ 987654327@ 稍后转至Close()。另一种常见的方式是this.Hide(); new main().ShowDialog(); this.Show();
  • 但是如何取消隐藏隐藏的表单?我用了“show()”,但是没用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 2014-01-03
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多