Я пытаюсь реализовать один экземпляр формы. Потому что мое приложение предназначено для скрытия и динамического отображения различных форм в соответствии с некоторыми значениями времени выполнения.
когда я хочу показать форму Trainee_Login из файла класса, я делаю это ...
Trainee_login ShowTraineelogin = Trainee.login.TraineeloginRef;
ShowTraineelogin.ShowScreen (); * +1006 *
когда я хочу скрыть форму Trainee_Login из файла класса, я делаю это ...
Trainee_login HideTraineelogin = Trainee.login.TraineeloginRef;
HideTraineelogin.HideScreen ();
Проблема в том, что InvokeRequired всегда ложно, а условие else выполняется.
Я использую тот же шаблон и для других форм, где Invokerequired имеет значение true, и если выполняется условие showscreen (). Та же проблема и для Hidescreen ().
Я что-то упустил ??
Код в моей форме Trainee_login:
private static Trainee_Login Trainee_LoginInstance = null;
public static Trainee_Login Trainee_LoginRef
{
get
{
if (Trainee_LoginInstance == null)
Trainee_LoginInstance = new Trainee_Login();
return Trainee_LoginInstance;
}
}
public void showScreen()
{
if (this.InvokeRequired == true)
{
this.Invoke(new MethodInvoker(this.showScreen));
}
else
{
this.Show();
}
}
public void hideScreen()
{
if (this.InvokeRequired == true)
{
this.Invoke(new MethodInvoker(this.hideScreen));
}
else
{
this.Hide();
}
}