C# C根据默认文本初始化表单

C# C根据默认文本初始化表单,c#,C#,我的表格1的标签默认设置为“公司名称” CompanyNameLBL.Text 我在这里放置了一个计时器,以便在数据库未设置时初始化数据库设置 if (CompanyNameLBL.Text == "Company Name") { //Instantiating Timer Class databaseTimer.Interval = 2000; // 1000 milliseconds database

我的表格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();
它改变了标签,但我的计时器仍然会响。给出了什么?

问题在于:

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();
我只是用

public formLogin(string dbName)
并通过那个变量传递它