我有表单1 标签默认设置为"公司名称" 。
CompanyNameLBL.Text
我在这里放了一个计时器,这样如果没有设置数据库,那么初始化数据库设置。
if (CompanyNameLBL.Text == "Company Name")
{
//Instantiating Timer Class
databaseTimer.Interval = 2000; // 1000 milliseconds
databaseTimer.Enabled = true;
databaseTimer.Tick += new EventHandler(dbTimer);
}
protected void dbTimer(object source, EventArgs e)
{
databaseTimer.Stop();
DatabaseSetup setupDatabase = new DatabaseSetup();
this.Hide();
setupDatabase.Show();
}
我有表单2 ,这是我的数据库设置。输入正确的凭据后,我可以更改标签的名称,如下所示:
formLogin loginScreen = new formLogin();
loginScreen.CompanyNameLBL.Text = "a new company name";
loginScreen.Show();
它改变了标签,但我的计时器仍然关闭。是什么给了什么?
答案 0 :(得分:0)
问题在于:
formLogin loginScreen = new formLogin();
您正在创建新 formLogin
实例,而不是对现有实例的引用。您需要弄清楚如何在两种形式之间进行通信。一种选择是使登录结果成为DatabaseSetup
表单的属性,然后在关闭表单后拉 :
databaseTimer.Stop();
DatabaseSetup setupDatabase = new DatabaseSetup();
this.Hide();
setupDatabase.Show();
loginScreen.CompanyNameLBL.Text = setupDatabase.CompanyName; // new property
this.Show();
答案 1 :(得分:0)
我只是用
public formLogin(string dbName)
并将其传递给该变量。