我有一个Windows窗体应用程序,它包含窗体类(及其设计器类)和一个静态类。我希望能够通过从静态类调用表单类中的方法来隐藏表单。如何在静态上下文中隐藏Windows窗体表单?
隐藏方法如下:
internal static void HideController()
{
DialogResult dlgResult =
MessageBox.Show("Controller will now close.", "Closing...",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
if (dlgResult == DialogResult.OK)
{
this.Hide();
}
}
的形式也不是一成不变的,所以我一直运行到的问题“这个”在静态情况下不是有效的。我想这样调用方法:
static UtilScenario()
{
_stkProgramId = ConfigurationManager.AppSettings.Get("stkProgramId");
if (CheckIfLaunched())
{
InitAllFields();
}
else
{
frmUavController.HideController();
}
}
我该怎么办?
从HideController方法删除static修饰符,然后你就可以使用`this`关键字。 – Josh 2011-01-06 04:16:03
@Josh Einstein,是的,但是我该如何静态调用该方法?我想引用已经实例化的表单对象。 – wulfgarpro 2011-01-06 04:20:23
从你的例子看来,你看起来并不像你在静态调用它。无论如何,如果可能的话,避免使用作用于某个事物实例的静态方法。如果这是不可能的,那么在SO上寻找关于“Singleton”设计模式的信息。 – Josh 2011-01-06 04:23:03