わかりましたので、ログインフォームからホームフォームにブール値を渡そうとしています。通常、これは私にとっては問題なく、プロパティを使用するだけです。ただし、今回は同様の方法を使用できると思いましたが、フォームにシングルトン ファクトリを実装しています。
これに関連するログイン コードは次のとおりです。 AdminAccess プロパティが適切に設定され、値が正しいことを確認しました。
private bool adminAccess;
public bool AdminAccess
{
get { return adminAccess; }
private set { adminAccess = value; }
}
private void btnLogin_Click(object sender, EventArgs e)
{
//Some Code Does Stuff
OpenHome();
}
private void OpenHome()
{
HomeForm CreateHomeForm = HomeForm.HomeUI;
CreateHomeForm.StartupHome = this;
//Trying to set the property.
CreateHomeForm.AdminPermissions= this.AdminAccess;
CreateHomeForm.Show();
this.Hide();
}
ホームフォームからの関連コードは次のとおりです。
public HomeForm()
{
InitializeComponent();
//just to check what is in the property quickly
textBox1.Text = AdminPermissions.ToString();
}
private bool adminPermissions;
public bool AdminPermissions
{
private get { return adminPermissions; }
set { adminPermissions = value; }
}
public Form StartupHome
{
set;
get;
}
private static HomeForm homeUI;
public static HomeForm HomeUI
{
get
{
if (homeUI == null || homeUI.IsDisposed)
{
homeUI = new HomeForm();
}
return homeUI;
}
}
フォームの新しいインスタンスが作成されるときに HomeUI if ループが実行されると、値がリセットされます。これを変更して実用的なソリューションを得る方法を考えることはできないようです。お分かりのように、私はかなりアマチュアなので、これに対する迅速でクリーンな解決策を探しています:) 事前にお時間をいただきありがとうございます!