2011-02-07 31 views
35

¿Cómo establecer el foco en cualquier celda especificada en DataGridView? Esperaba una forma simple como Focus (rowindex, columnindex) pero no es tan fácil.DataGridView: centrar una celda específica

+0

probar este ..... http://stackoverflow.com/questions/20822270/canceledit-does-not-keep-focus-on-edited-cell-in-datagridview-c -sharp –

Respuesta

64

Establecer la celda actual como:

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

o

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

y se puede enfocar directamente con Editado por:

dataGridView1.BeginEdit(true) 
+9

.CurrentCell funcionó, pero DataGridView1.Item (1, 5) no. Tuve que hacer: dataGridView1.CurrentCell = dataGridView1.Rows [rowindex] .Cells [columnindex]. –

11

puede establecer Focus a una específica Cell estableciendo Selected propiedad en true

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

para evitar la selección múltiple apenas se fija

dataGridView1.MultiSelect = false; 
5

el problema con DataGridView es que se seleccione la primera fila de forma automática por lo que desea borrar la selección por

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

de otra forma no funcionará

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

Esta no es una solución válida para la pregunta planteada. – Tizz

0

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

3

Tuve un problema similar. He ocultado algunas columnas y luego intenté seleccionar la primera fila. Esto no funcionó:

datagridview1.Rows[0].Selected = true; 

así que he intentado seleccionar cell[0,0], pero también no funcionó, porque no se visualiza esta célula. Ahora mi solución final está funcionando muy bien:

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

Así que esto selecciona la primera fila completa.

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

cuidado de explicar? – SMUsamaShah

0

en Form_Load evento (remitente del objeto, EventArgs e) tratan este

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

este código hacen foco en la última fila y la primera célula

-1

Sólo Pega simple y pasar Gridcolor() en cualquier lugar que desee.

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

¡Bienvenido a Stack Overflow! Si bien este fragmento de código puede resolver la pregunta, [incluyendo una explicación] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) realmente ayuda a mejorar la calidad de su publicación.Recuerde que usted está respondiendo la pregunta a los lectores en el futuro, y es posible que esas personas no sepan los motivos de su sugerencia de código. Por favor, intente no saturar su código con comentarios explicativos, ¡esto reduce la legibilidad tanto del código como de las explicaciones! – kayess

Cuestiones relacionadas