![]() |
1
9
编辑:这个问题原来是关于处置的。
A
如果没有,请描述“不起作用”。
您的全球程序定时器现在存储对您的Form2实例的引用,并防止它被收集。它不会阻止它被释放/关闭,因此您的计时器将继续为关闭的窗体触发,而这通常会失败并导致其他问题。
|
![]() |
2
4
最简单、最可靠的处理
C#中的using块是一个构造,它从本质上将上述内容扩展为以下代码。
|
![]() |
3
3
这是一个老问题,但它涉及到一些有趣的问题,即对象如何工作。形式本质上是一个对象。同一类的所有对象共享相同的方法,但每个对象都有自己的数据。这是什么意思?这意味着,关闭或处理对象不会释放/删除/移除任何对象 代码 从记忆中。只有数据。所有这些都是关于物体的,不管是什么语言。
现在,特别是关于你的代码。让我们看看这条线是什么
表单将使用ShowDialog显示。在这种情况下,必须手动调用Dispose()。 MSDN 不必说(或者也许不是那么不必要),如果关闭/处理窗体将函数从内存中清除,那么timer对象将有一个无效指针,而您的程序将 崩溃 |
|
4
1
也许我看错了这个问题,但我认为先生们需要知道,要关闭一个以form2.ShowDialog()打开的窗体(比如form2),需要在form2中设置form2.DialogResult。只需设置该成员就可以关闭窗体并返回结果。 |
![]() |
5
0
窗体.ShowDialog()将窗体显示为模式对话框。这意味着在窗体关闭之前,调用不会返回。
如果您确实想要一个阻塞模式对话框,您应该用一个using块包围窗体,如其他答案中所述。
|
|
user2414250 · 如何判断资源是否处于非托管状态? 7 年前 |
![]() |
J.Lucas · 处置方法的重要性(libgdx) 7 年前 |
![]() |
1iveowl Diego Sanchez · 异步一次性创建 8 年前 |
![]() |
Czeshirecat · 在更改控件的字体时,是否应丢弃旧字体? 10 年前 |
![]() |
user2813889 · 从列表中删除对象后,我应该将其更改为Null吗? 11 年前 |
![]() |
Zerowalker · 如果我在整个跑步过程中都需要一次性物品,该怎么办? 11 年前 |