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 にあると認識しています。フォーム上ではグリッドは問題なく見えますが。

4

0 に答える 0