好的,我试图从我的登录表单传递一个布尔值到我的Home窗体,通常这对我来说很好,我只是使用一个属性。不过,我想这次我可以使用类似的方法,但我正在实现表单上的单件工厂。使用Singleton时在Winforms之间传递属性
以下是与此相关的登录代码: 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形式的新实例时复位。我似乎无法想象如何修改此以获得工作解决方案。正如你可以告诉我相当业余,所以我只是寻找一个快速和干净的解决方案:) 非常感谢您的时间提前!
感谢您的帮助,再加上使用来自其他答案中给出的显示事件帮助解决了我的问题!我曾希望这是我做一些愚蠢的事情:) – 2012-04-24 15:13:27