简体   繁体   English

Datagridview添加新列并专注于此

[英]Datagridview add new column and focus on it

Hello sir i am having trouble in focusing my datagridview i have code like this 您好先生,我无法集中我的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;
}

And i want to focus this newly added column cell i have used upper code but its not working its focusing on second row because its a last column of current row i also tried this one 我想把这个新添加的列单元格集中在我已经使用了上层代码的地方,但是它不能集中于第二行,因为它是当前行的最后一列,我也尝试过这个

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;
    }
}

This really confusing me i have tried all these but still its going to second row first cell what to do in this case? 这确实让我感到困惑,我已经尝试了所有这些方法,但是在这种情况下仍要进入第二行第一格?

[Updated] [更新]

  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);
    }

And my code of tried 和我尝试过的代码

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;
            }
        }

在此处输入图片说明

[Updated1] [更新1] 在此处输入图片说明

The code you use is selecting cell . 您使用的代码是选择cell To select a column use this code instead: 要选择列,请改用以下代码:

dataGridView1.Columns[columnIndex].Selected = true;

Remember to deselect all the columns selected before if you want each column to be selected at a time. 如果要一次选择每一列,请记住取消选择之前选择的所有列。 You can use some variable to save the last selected column and deselect it when needed. 您可以使用一些变量来保存最后选择的列,并在需要时取消选择它。

UPDATE UPDATE

Here is the code you should have tried: 这是您应该尝试的代码:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM