0

简单的问题。我有一个使用 DataTable 设置的 dataGridView,然后在 DataTable 之后为按钮添加 2 列。当我点击一个索引为 6 的按钮时,它给了我索引 1,这是我的第一个按钮。

        DataTable cartResults = cart.RunCartQuery(sb.ToString());

        dgCart.DataSource = cartResults;

        // Add a button to the DataGridView at the specified position
        DataGridViewButtonColumn btnEdit = new DataGridViewButtonColumn();
        btnEdit.Name = "btnEdit";
        btnEdit.Text = "Edit";
        btnEdit.HeaderText = "Edit Quantity";
        btnEdit.UseColumnTextForButtonValue = true;
        dgCart.Columns.Insert((int)Buttons.Edit, btnEdit);

        DataGridViewButtonColumn btnDelete = new DataGridViewButtonColumn();
        btnDelete.Name = "btnDelete";
        btnDelete.Text = "Delete";
        btnDelete.HeaderText = "Delete";
        btnDelete.UseColumnTextForButtonValue = true;
        //dgCart.Columns.Insert((int)Buttons.Delete, btnDelete);
        dgCart.Columns.Add(btnDelete);

我不知道为什么返回的索引是 1(即编辑按钮)而不是我的删除按钮,即索引 6。有什么想法吗?


问题的根源是DataGridView.DataSource是一个DataTable,然后我在设置数据源后添加了2个按钮列。即使我在索引 1 和 6 处添加了按钮,DatagridView 仍认为它们位于索引 0 和 1。即使 Grid 在表单上看起来不错。

4

0 回答 0