好的,所以我试图将一个布尔值从我的登录表单传递到我的主页表单,通常这对我来说很好,我只会使用一个属性。但是我认为这次我可以使用类似的方法,但我正在表单上实现单例工厂。
这是与此相关的登录代码: 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();
}
以下是 Home 表单中的相关代码:
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 循环在创建表单的新实例时运行时,该值将被重置。我似乎无法考虑如何修改它以获得有效的解决方案。如您所知,我相当业余,所以我只是在寻找一种快速而干净的解决方案:) 非常感谢您提前抽出时间!