我有一個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