これで、ログインフォームから私のホームフォームにブール値を渡そうとしています。通常はこれがうまくいくので、プロパティを使用します。しかし、私は今度は同様のメソッドを使うことができると思っていましたが、フォーム上にシングルトンファクトリを実装しています。シングルトン使用時にWinforms間でプロパティを渡す
これに関連するログインコードは次のとおりです。 AdminAccessプロパティが正しく設定され、値が正しいことを確認しました。
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がフォームの新しいインスタンスが作成される場合にリセットされます:
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();
}
は、ここでホームフォームから関連するコードです。私はこれを修正して実用的な解決策を得る方法を考えているようではありません。あなたは私がかなりアマチュアだと言うことができるので、私はちょうどこれにクイックでクリーンなソリューションを探しています:) あなたの時間の前にありがとう!
これは、他の答えに記載されている援助からの表示されたイベントを使用して、私の問題を解決しました!私はそれが私が何かばかげたことを望んでいたし、それはでした:) –