C#datagridview列索引错误

C#datagridview列索引错误,c#,events,datagridview,C#,Events,Datagridview,我有一个columncontentclicked的事件处理程序,它可以正常工作,直到我用存储过程缩短数据列表。之后返回的indexnum是0,而不是5或6。 我必须刷新datagridview还是其他什么 这是te代码 : }我发现了我的问题。我想要单击的列是buttoncolumn,我在加载网格时添加了它。但在筛选后,该列不会得到刷新或新数据,因此它认为我是第一列,也是唯一一列,而其他列会得到重建。因此调用dataGridView1.Columns.Clear();在网格重新填充后重新创建按钮

我有一个columncontentclicked的事件处理程序,它可以正常工作,直到我用存储过程缩短数据列表。之后返回的indexnum是0,而不是5或6。 我必须刷新datagridview还是其他什么

这是te代码

:


}我发现了我的问题。我想要单击的列是buttoncolumn,我在加载网格时添加了它。但在筛选后,该列不会得到刷新或新数据,因此它认为我是第一列,也是唯一一列,而其他列会得到重建。因此调用dataGridView1.Columns.Clear();在网格重新填充后重新创建按钮列成功了,–

您是否尝试调用了
dataGridView1.DataBind()
?visual studio似乎不知道名为DataBind()的方法,我在应用筛选器后创建了一个新的绑定上下文。这就是你的意思吗?我发现了我的问题。我想要单击的列是buttoncolumn,我在加载网格时添加了它。但在筛选后,该列不会得到刷新或新数据,因此它认为我是第一列,也是唯一一列,而其他列会得到重建。因此调用dataGridView1.Columns.Clear();在网格被重新填充后重新创建按钮列就达到了目的,对不起,数据绑定方法来自ASP.NET GridView。
int lastcol = dataGridView1.Columns.Count;
       // MessageBox.Show(e.ColumnIndex.ToString() + lastcol.ToString());
        if (e.ColumnIndex == lastcol - 1)
        {
            int index = int.Parse(dataGridView1.CurrentRow.Cells[0].Value.ToString());


            Global.size = this.Size;
            Global.position = this.Location;
            Global.overzicht_select = index.ToString();


            if (Global.give_return == false)
            {

                switch(type)
                {

                    case 1:
                    Global.edit_form_proj = false;
                    project_form project_form1 = new project_form(this);
                    project_form1.Show(this);
                    this.Hide();
                    break;



                    case 2:
                    Global.edit_form_bedr = false;
                    bedrijf_form bedrijf_form1 = new bedrijf_form(this);
                    bedrijf_form1.Show(this);
                    this.Hide();
                    break;


                    case 3:
                    Global.edit_form_pers = false;
                    persoon_form persoon_form1 = new persoon_form(this);
                    persoon_form1.Show(this);
                    this.Hide();
                    break;
                }
            }
            else
            {
                Global.return_id = index.ToString();
                if (pf != null)
                {
                    pf.fill_id();
                }
                if (pr != null)
                {
                    pr.fill_id();
                }
                Global.give_return = false;
                Close();
            }
        }
    }