Datagridview添加新列并专注于它

时间:2013-11-17 09:28:59

标签: c# .net winforms datagridview

您好先生我在关注我的datagridview时遇到问题我有这样的代码

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    DataGridViewColumn col = new DataGridViewTextBoxColumn();
    col.DataPropertyName = "2";
    col.HeaderText = "2".ToString();
    col.Name = "2".ToString();

    dataGridView1.Columns.Add(col);
    mm = e.RowIndex;
    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 1].Selected=true;
}

我想关注这个新添加的列单元格,我已经使用了高级代码,但是它没有专注于第二行,因为它是当前行的最后一列我也试过这个

private void dataGridView1_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
{
    if (mm != 0)
    { 
        dataGridView1.CurrentCell = dataGridView1.Rows[mm].Cells[e.Column.Index];
        dataGridView1.BeginEdit(true);
        dataGridView1.Rows[mm].Cells[e.Column.Index].Selected = true;
    }
}

这让我很困惑,我已经尝试了所有这些,但仍然会进入第二排第一个单元格在这种情况下该做什么?

[更新]

  private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
DataGridViewColumn col = new DataGridViewTextBoxColumn();
                                    col.DataPropertyName = "";
                                    col.HeaderText = j.ToString();
                                    col.Name = j.ToString();
                                    dataGridView1.Columns.Add(col);
    }

我的尝试代码

private void dataGridView1_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
        {
            if (mm != 0)
            {
                dataGridView1.ClearSelection();
            dataGridView1.CurrentCell = dataGridView1.Rows[mm].Cells[e.Column.Index];

            dataGridView1.Rows[mm].Cells[e.Column.Index].Selected = true;
            }
        }

enter image description here

[Updated1] enter image description here

1 个答案:

答案 0 :(得分:1)

您使用的代码是选择单元格。要选择列,请改用此代码:

dataGridView1.Columns[columnIndex].Selected = true;

如果您希望一次选择每列,请记住取消选择之前选择的所有列。您可以使用某个变量来保存最后选择的列,并在需要时取消选择它。

更新

以下是您应该尝试的代码:

private void dataGridView1_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
{
   dataGridView1.ClearSelection();
   e.Column.Selected = true;
}