C#关闭另一个窗体问题,Close();不起作用

标签 c# .net winforms formclosing

我在 form1 上有这段代码

TimerMode f2 = new TimerMode();
f2.show();

现在我尝试在某个时间点使用此代码,但没有任何反应? Cmd = 关闭

public void DoActions(string Cmd)
{
  switch(Cmd){

  case"Open":
      TimerMode f2 = new TimerMode();
      f2.show()
      break;
  case"Closing":
       f2.Close();
       break;
}
}

你知道为什么它没有关闭吗?

我真正希望它关闭它。

在 vb6 中我使用这个

unload form2

最佳答案

很可能是线程问题。试试这个:

f2.Invoke((MethodInvoker)(() => f2.Close()));

如果这不起作用,请使用以下修改:

public TimerMode f2 = new TimerMode();
public void DoActions(string Cmd)
{
  switch(Cmd){    
  case"Open":          
      f2.show()
      break;
  case"Closing":
       f2.Close();
       break;
  }
}

关于C#关闭另一个窗体问题,Close();不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6014977/

相关文章:

c# - 当触发另一个类的事件时通知

.net - 选择 Entity Framework 作为针对 Nhibernate 的默认实现 ORM,优缺点?

c# - 如何在 C# WinForms 中收到外部 MS Access 数据库更新的通知?

.net - 从 VB.NET 中的电子邮件附件获取复制到剪贴板的文件名

.net - 什么影响 GC 的时间?

c# - 自动调整包含 TabControl 的表单

c# - Form1_KeyDown 不工作

c# - 在指定时间限制互联网访问

c# - 根据最新的日期时间获取列表项

C# 在 setter 方法上添加验证