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

本文关键字:Close 不起作用 问题 另一个 表单 | 更新日期: 2023-09-27 17:56:26

>我在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

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

很可能

是线程问题。试试这个:

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;
  }
}

我只是花了几个小时想知道为什么我的表单无法关闭。原来,我忘了检查下面的所有内容

调试>异常

因此,其中一个事件处理程序静默地抛出了一个 NullPointerException,否则该异常会被框架捕获。我想将事件参数的 Cancel 属性设置为 true,然后将其设置为 false 显然不起作用(当我修复 NullPoper 时,一切再次正常工作。