执行自动点击方法时,对象引用未设置为对象错误的实例

时间:2014-04-21 09:28:16

标签: c# winforms object-reference

我有一个代码并执行类似这样的自动点击方法:

public partial class cron_printer : Form
{
    public cron_printer()
    {
        InitializeComponent();
        cmdCommand_Click(null, null);
        dbConnect = new DBConnect();

    }
    private void cmdCommand_Click(object sender, EventArgs e)
    {
        List<string>[] list;
        //get list from database
        list = dbConnect.Connect(); //ERROR:Object reference not set to an instance of an object.
        for (int i = 0; i < list[0].Count; i++)
        {
            string ipAdd = list[0][i]; 
            CmdConnect(ipAdd, txtPort.Text); //call function connect
        }
    }
}

如果我创建一个名为cmdCommand的按钮并执行正常点击,则代码可以正常工作。但是当我通过添加以下行来执行自动点击方法时:

cmdCommand_Click(null, null);

然后我在代码中得到了错误。有什么想法吗?请指教。

3 个答案:

答案 0 :(得分:1)

在初始化对象cmdCommand_Click之前,您正在调用dbConnect事件。

首先应首先初始化对象dbConnect,然后调用/调用cmdCommand_Click事件

替换它:

cmdCommand_Click(null, null);
dbConnect = new DBConnect();

有了这个:

dbConnect = new DBConnect();
cmdCommand_Click(null, null);

答案 1 :(得分:1)

cmdCommand_Click(null, null);执行时,dbConnect仍为NULL。请试试这个:

public cron_printer()
{
    InitializeComponent();        
    dbConnect = new DBConnect();
    cmdCommand_Click(null, null);
}

答案 2 :(得分:1)

在事件中添加DbConnect() istantiate行:

private void cmdCommand_Click(object sender, EventArgs e)
{
    dbConnect = new DBConnect();
    List<string>[] list;
    //get list from database
    list = dbConnect.Connect(); //ERROR:Object reference not set to an instance of an object.
    for (int i = 0; i < list[0].Count; i++)
    {
        string ipAdd = list[0][i]; 
        CmdConnect(ipAdd, txtPort.Text); //call function connect
    }
}