使用SQL在两个表单之间传递数据

时间:2015-09-11 17:38:18

标签: c# mysql

我尝试使用阅读器传递另一个表单。 此代码来自Form1。

if (count == 1) // IF Ok.
            {
                userLabel.Text = myReader[0].ToString(); // SHOW THE USERNAME
                loginSuccessTimer1.Enabled = true; // FOR TIMER
                LoginFormSuccessBG loginSuccess = new LoginFormSuccessBG();
                loginSuccess.Show(); //LoginSuccess SHOW FORM
            }

来自Form2的此代码。我想在Form1中以这种形式显示文本。

 private void button2_Click(object sender, EventArgs e)
    {
        userLabel2.Text = loginForm.userLabel.Text;
    }

但是如果我点击Form2上的button2;我在Visual Studio上犯了这个错误:

An unhandled exception of type 'System.NullReferenceException' occurred in Launcher.exe Additional information: Object reference not set to an instance of an object.

我已将userLabel设置为public并在Form2上尝试过此操作。

userLabel2.Text = loginForm.userLabel.ToString();

但它没有用。总是给出这个错误。

2 个答案:

答案 0 :(得分:1)

您可以将Form1作为参数传递给Form2的构造函数。然后,如果您将userLabel设为public,则可以从Form2访问它。这是一个例子:

Form1代码:

public Form1()
{
    InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
    Form2 frm = new Form2(this);
    frm.Show();
}

Form2代码:

Form1 form1;
public Form2(Form1 sender)
{
    InitializeComponent();
    form1 = sender;
}

private void button1_Click(object sender, EventArgs e)
{
    string text = form1.label1.Text;
}

答案 1 :(得分:1)

这应该可行,我只是在测试应用程序中完成。

userLabel2.Text =
    (Application.OpenForms["yourForm1"] as yourForm1).userLabel.Text;