我有这样一个界面,普通查询和高级查询公用一个DataGridView,而且这两个查询后的DataSet的Table[0]都需要Add一个Column["xxx"],并且还要把column["xxx"]在DataGridView中的DisplayIndex重置,可是,每次查询后执行这句时"DataGridView.Columns["xxx"].DisplayIndex = i";都会抛出异常Object reference not set to an instance of an object,请高手指点,不知道这样表述清楚吗?

解决方案 »

  1.   

    通过DisplayIndex 控制显示列的位置是可以的.如下边程序.你在好好查查你哪块有问题..设个断点跟一下.Columns["xxx"]你这个应该是null值.你用索引值试一下.看看他是什么.然后看看和"xxx"对应吗private void Form1_Load(object sender, EventArgs e)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("id", typeof(int));
                dt.Columns.Add("Name", typeof(string));
                for (int i = 0; i < 15; i++)
                {
                    DataRow dr = dt.NewRow();
                    dr[0] = i;
                    dr[1] = "A"+i;
                    dt.Rows.Add(dr);
                }            this.dataGridView1.DataSource = dt;            this.dataGridView1.Columns[0].DisplayIndex = 1;        }
      

  2.   

    谢谢,我的问题解决了,感谢你的提示,先判断一下this.dataGridView1.Columns[“xxx”]是不是为空,然后else{....}
    if(this.dataGridView1.Columns[“xxx”])==null)
    {
    ...
    }
    else
    {
    .....
    }