【问题标题】:Form Not getting Closed Completely while using "this.Close()"使用“this.Close()”时表单未完全关闭
【发布时间】:2017-01-31 03:06:54
【问题描述】:

我正在使用 Visual Studio 2010 我现在正为我的项目中的一个问题而烦恼。这个问题你可能会觉得很愚蠢。但我不知道发生了什么。

在我的项目中有 3 种形式。

  • Form1
  • Form2
  • DisplayFrm

我试图使用两个其他表单(Form1 和 Form2)打开一个表单(DisplayFrm)

这是我用来使用“Form1”和“Form2”打开“DisplayFrm”的代码

        DisplayFrm.InitialLoadCustProf = RegCustIDtextBox.Text;
        DisplayFrm frm = new DisplayFrm();
        frm.ShowDialog();
  • 我已使用 From1 打开 "DisplayFrm"
  • 在那边做了一些操作后,我使用标题栏中的 [X] 按钮关闭了该表单
  • (我也尝试过在单独的按钮中给出 this.Close();

问题是,当我使用 Form2 打开 DisplayFrm agian 时,它并没有以全新的形式开始。它只是通过我已经完成的操作恢复我之前已经关闭的 DisplayFrm

  • 我在其他任何项目中都没有这个问题。我认为我的项目崩溃了..它没有显示任何错误。
  • 有什么方法可以使用 this.dispose();与表单关闭事件?。目前无法正常工作。
  • 为什么我的表单没有关闭? .为什么它的行为就像我使用了 this.hide();this.show();

【问题讨论】:

  • 您在 DisplayForm 类中使用了某种静态变量吗?这些变量(如果有的话)是否涉及保持在 DisplayForm 中完成的工作状态?最后,您是在 form2 代码中创建一个 new DisplayForm() 吗?

标签: c# forms winforms visual-studio-2010


【解决方案1】:

DisplayFrm.InitialLoadCustProf 似乎是静态的。尝试将其更改为实例属性并像这样打开表单:

using( DisplayFrm frm = new DisplayFrm() )
{
    frm.InitialLoadCustProf = RegCustIDtextBox.Text;
    frm.ShowDialog( this );
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 2021-04-14
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    相关资源
    最近更新 更多