DataGridView - 聚焦特定单元格

时间:2011-02-07 07:22:03

标签: c# datagridview

如何在DataGridView中的任何指定单元格上设置焦点?我期待像Focus这样的简单方法(rowindex,columnindex),但这并不容易。

11 个答案:

答案 0 :(得分:74)

将当前单元格设置为:

DataGridView1.CurrentCell = DataGridView1.Rows[rowindex].Cells[columnindex]

DataGridView1.CurrentCell = DataGridView1.Item("ColumnName", 5)

您可以通过以下方式直接关注编辑:

dataGridView1.BeginEdit(true)

答案 1 :(得分:11)

您可以通过将Focus属性设置为true来将Cell设置为特定Selected

dataGridView1.Rows[rowindex].Cells[columnindex].Selected = true;

避免多重选择只需设置

dataGridView1.MultiSelect = false;

答案 2 :(得分:7)

datagridview的问题在于它会根据您的需要自动选择第一行

清除选择
grvPackingList.ClearSelection();
dataGridView1.Rows[rowindex].Cells[columnindex].Selected = true;  

另外,它不起作用

答案 3 :(得分:3)

我有类似的问题。我隐藏了一些列,之后我尝试选择第一行。这并没有真正起作用:

datagridview1.Rows[0].Selected = true;

所以我尝试选择cell[0,0],但它也没有用,因为这个单元格没有显示。现在我的最终解决方案运作良好:

datagridview1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;    
datagridview1.CurrentCell = datagridview1.FirstDisplayedCell;

所以这会选择完整的第一行。

答案 4 :(得分:1)

public void M(){ 
  dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[0];
  dataGridView1.CurrentCell.Selected = true; 
  dataGridView1.BeginEdit(true);
}

答案 5 :(得分:0)

事件中的

form_load(对象发送者,EventArgs e)试试这个

dataGridView1.CurrentCell = dataGridView1.Rows [dataGridView1.Rows.Count1] .Cells [0];

此代码重点关注最后一行和第一个单元格

答案 6 :(得分:0)

np.arange(a-2, a+3)
#=> array([3, 4, 5, 6, 7])

答案 7 :(得分:-1)

 private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
    {
        int row = e.RowIndex;
        int col = e.ColumnIndex;
        if (row < 0 || col != 3)
            return;
        if (e.FormattedValue.ToString().Equals(String.Empty))
        {
        }

        else
        {
            double quantity = 0;
            try
            {
                quantity = Convert.ToDouble(e.FormattedValue.ToString());
                if (quantity == 0)
                {
                    MessageBox.Show("The quantity can not be Zero", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    e.Cancel = true;
                    return;
                }
            }
            catch
            {
                MessageBox.Show("The quantity should be decimal value.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                e.Cancel = true;
                return;
            }
        }
    }

答案 8 :(得分:-1)

DataGridView1.CurrentCell = DataGridView1.Item(“ColumnName”,5)

答案 9 :(得分:-1)

只需简单粘贴并传递Gridcolor()任何你想要的地方。

Private Sub Gridcolor()
    With Me.GridListAll
        .SelectionMode = DataGridViewSelectionMode.FullRowSelect
        .MultiSelect = False
        '.DefaultCellStyle.SelectionBackColor = Color.MediumOrchid
    End With
End Sub

答案 10 :(得分:-1)

您可以为DataGrid尝试以下操作:

DataGridCellInfo cellInfo = new DataGridCellInfo(myDataGrid.Items[colRow], myDataGrid.Columns[colNum]);
DataGridCell cellToFocus = (DataGridCell)cellInfo.Column.GetCellContent(cellInfo.Item).Parent;
ViewControlHelper.SetFocus(cellToFocus, e);