none
IF nombre de columna seleccionada DataGridView. RRS feed

  • Pregunta

  • Hola, necesito hacer un IF pero no puedo dar con la solución.

    El IF sería, si el nombre de la columa que estoy posicionado es "X" hacer tanto. De seguro es una idiotez pero probé de millones de formas y no encuentro la solución.

    Estás son algunas de las formas que probé

    //if (dgvRepartos.SelectedColumns == dgvRepartos.Columns["colACarga"])
                //{
                //}
    
                //if (dgvRepartos.CurrentCell.Selected = "colACarga")
                //{
                //}
    
                //if (dgvRepartos.CurrentRow.HeaderCell = dgvRepartos.Columns["colACarga"])
                //{
                //}
    Gracias por la ayuda.

    jueves, 3 de marzo de 2016 23:54

Todas las respuestas

  • Hola b0nete.

    El llenado del DataGridView como lo realizas? si es con una base de datos, quizá te convenga realizar el filtro en el Binding Source.

    Pero directamente en el dataGridView tienes que recorrer cada fila y después especificar la columna, por ejemplo:

    //Recorres cada objeto de tipo DataGridViewRow
    foreach (DataGridViewRow dr in dataGridView1.Rows){
    string valor;
    //en Cells[] colocas el número de columna
    if(dr.Cells[1].Value.ToString() == valor){
    //acciones
    }
    }

    Si no te funciona puedes probar con esta variante

    //Recorres cada objeto de tipo DataGridViewRow
    foreach (DataGridViewRow dr in dataGridView1.Rows)
         //en Cells[] colocas el número de columna o puedes especificar un valor especifico de comparación
         //string valor = "valor";
         string valor =  dr.Cells[1].Value.ToString();
         bool bandera = false;
    
                    DataRow[] filas;
    //Se recorre cada fila
    foreach (DataRow ddr in filas)
                    {
                        if (ddr["nombre_columna"].ToString() == valor)
                            {
                                bandera = true;
                            }
                    }
                    if (bandera)
                    {
                      //Acciones a realizar
                    }
                }
    Saludos.


    Hasta Siempre.... Erick Martínez.


    • Editado hserick jueves, 7 de abril de 2016 16:35
    jueves, 7 de abril de 2016 16:27
  • El nombre de la columna seleccionada en el DataGrid lo puedes obtener con 

    DataGridView1.Columns(e.ColumnIndex).Name

    Depende de lo que quieras hacer puedes trabajar en el evento CellBeginEdit, CellEndEdit, CellClick


    Saludos, Javier J

    jueves, 7 de abril de 2016 16:34