我有三種形式,f1,f2,f3我們會稱它們。我有一個類Account
,其中我存儲username
,password
,groups
和path
(文件)。 F2
是主要的形式,並應與其他兩種形式進行交互。 F1
是登錄表單,F3
是編輯表單。我在我的program.cs中使用它來在其他表單之前調用登錄表單。傳遞數據w /構造函數與主窗體
Form1 login = new Form1();
if (login.ShowDialog() == DialogResult.OK)
{
Application.Run(new Form2());
}
爲f2
和f3
之間傳遞數據,我使用構造與賬戶類。但是,我也想將數據從f1
傳遞到f2
,但是如果我使用相同的方法,則表單之間不會有數據交互(數據爲空)。
我編輯上面的代碼這樣:
Form1 login = new Form1();
Account acc = new Account();
if (login.ShowDialog() == DialogResult.OK)
{
Application.Run(new Form2(acc));
}
在登錄表單(f1
),我通過一些數據到Account
類,所以在登錄按鈕點擊發生這種情況:
private void LoginButton_Click(object sender, EventArgs e)
{
Account acc = new Account();
//some code
acc.Groups = "New group";
//some more code
DialogResult = DialogResult.OK;
}
然後,在Form2.cs,我有以下代碼:
string groups = "";
public Form2(Account acc)
{
InitializeComponent();
groups = acc.Groups;
}
但每當我這樣運行時,我從來沒有在主窗體中得到任何結果(f2
),acc.Groups始終爲空,我不知道爲什麼。我使用了與構造函數相同的方法將數據從f2
提取到f3
,並且它工作正常,爲什麼這不起作用?是否因爲我在登錄表單中使用了錯誤的方法?處理這個問題的正確方法是什麼?
如果你的'Account'類是不依賴於任何具體的類,那麼你可以讓你的'Account'類屬性的靜態和徘徊無論你想('Account.Groups =訪問它們「新組」;') – jAC
Click處理程序中引用的'Account'和登錄表單中聲明的'Account'是2個不同的對象。 –
我想避免聲明任何靜態或公共。@ BarryO'Kane我足夠新,現在知道如何正確連接一切。 – EInherjar