好的,我試圖從我的登錄表單傳遞一個布爾值到我的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