对象引用未设置为打开新表单的对象c#的实例

本文关键字:表单 对象 实例 设置 新表单 对象引用 | 更新日期: 2023-09-27 17:58:11

  1. 询问用户的用户名和密码
  2. 点击按钮,它会检查连接的数据库中的用户名和密码
  3. 当正确时,它将其ID号存储在一个变量中,默认情况下该变量为0
  4. 然后我运行一个If语句,如果ID>=0,它需要打开另一个表单。如果不是,它会显示错误消息

第一种情况下的MessageBox如果大小写显示正确的ID(1,2,3任意)现在在Form3上,只需要一个简单的textbox1.text="hi";给我一个错误:

对象引用未设置为对象c#的实例。并显示文本框行。

    int IDnumber = 0;
        SqlCommand dataCommand = new SqlCommand(" SELECT ID FROM leden WHERE [Username]='" + username_txt.Text + "' and [Password]='" + password_txt.Text + "'", SC);
        SC.Open();
        IDnumber = Convert.ToInt32(dataCommand.ExecuteScalar());
        SC.Close();
        if (IDnumber >= 1)
        {
            MessageBox.Show("Logged in, welcome ID number:" + IDnumber, "test");
            Form3 f3 = new Form3(IDnumber);
            f3.Show();                 
        }
        else
        {
            MessageBox.Show("Wrong Username and/or Password");
        }
}

形式3:

public Form3(int _IDnumber)
{
    int IDnumber = _IDnumber;
    textBox1.Text = "hi";
}

当然,文本框是一个测试,以表明我使用什么文本框并不重要,它只会给我这个错误。是的,我仍然使用未加密的密码,还不知道如何做到

对象引用未设置为打开新表单的对象c#的实例

您尚未初始化表单上的组件。添加

InitializeComponent();

在你的构造器的开头。

在Forms构造函数中设置控件不是一个明智的想法,而是在OnLoad事件中实现这些东西。

MSDN:http://msdn.microsoft.com/en-us/library/360kwx3z(v=vs.90).aspx,如果不想将代码放在构造函数中,请使用OnLoad。