none
Recorrer columnas especificas datagridview RRS feed

  • Pregunta

  • Hola, necesito que el siguiente código solo recorra desde la columna 3 hasta la 8 del datagridview, como puedo hacerlo y que el resto del código funcione igual.?
            ' Recorremos las filas
            For Each row As DataGridViewRow In dgProductos.Rows
                ' Recorremos las celdas de cada fila
                For Each col As DataGridViewCell In row.Cells
                    ' Obtenemos el valor de la celda
                    Dim value As Object = col.Value
                    If ((value Is Nothing) OrElse (value Is DBNull.Value)) Then
                        ' Al menos una celda está vacía.
                        Dim rowIndex As Integer = row.Index
                        Dim columnIndex As Integer = col.ColumnIndex
                        'Dim columnIndex As Integer = col.ColumnIndex
                        ' Seleccionamos la celda vacía.
                        dgProductos.CurrentCell = dgProductos.Rows(rowIndex).Cells(columnIndex)
                        Dim msg As String = String.Format("La columna {0} perteneciente a la fila {1} está vacía.", columnIndex, rowIndex)
                        MessageBox.Show(msg)
                        'MessageBox.Show("La columna {0} perteneciente a la fila {1} está vacía.")
                        ' Abandonamos el procedimiento
                        Return
                    End If
                Next
            Next
            ' Si hemos llegado hasta aquí, es porque todas las
            ' celdas del control DataGridView tienen un valor.
            MessageBox.Show("Todas las celdas tienen un valor.")

    miércoles, 10 de enero de 2018 3:30

Respuestas

  • private void button2_Click(object sender, EventArgs e)
            {
                int rowNumber ;
                DateTime Fecha;
                rowNumber =  Convert.ToInt32 (dtgContar.CurrentRow.Cells[3].Value);
                Fecha  =  Convert.ToDateTime(dtgContar.CurrentRow .Cells[4].Value );

               foreach (DataGridViewRow row in this.dtgContar.Rows)


                {

                    row.Cells[4].Value = Fecha;
                    row.Cells[2].Value = + rowNumber;

                    rowNumber = rowNumber + 1;
                }

                this.dtgContar.AutoResizeRowHeadersWidth(
                     DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);
            }
            }

    SYUFS

                                 

    Private Sub cmdnumera_Click() Dim cancel As Integer, nota As String If MsgBox(" ** Atencion : Este Proced. Numera los Cks. Desea continuar ?", gnMSGBOX_Tipo) <> gnMSGBOX_si Then cancel = True Exit Sub Else Dim gPicture As Picture Set gPicture = cmdnumera.Picture End If Dim xlcontador, fechay As Date xlcontador = Val(TDBGrid1.Columns("nocksbackup").Value) fechay = (TDBGrid1.Columns("fecha").Value) Do While TDBGrid1.EOF = False TDBGrid1.Columns("nocheque").Value = xlcontador TDBGrid1.Columns("fecha").Value = Format(fechay, "dd mmm yy") TDBGrid1.MoveNext xlcontador = xlcontador + 1 Loop End Sub

    • Propuesto como respuesta Pablo Rubio martes, 16 de enero de 2018 16:48
    • Marcado como respuesta Pablo Rubio jueves, 18 de enero de 2018 16:51
    martes, 16 de enero de 2018 16:15
  • Antes de la instrucción 'Dim value As Object = col.Value' agrega la siguiente instrucción: 

    If col.ColumnIndex < 3 Or col.ColumnIndex > 8 Then Continue For

    • Marcado como respuesta Dani Paredez miércoles, 10 de enero de 2018 10:23
    miércoles, 10 de enero de 2018 4:38

Todas las respuestas

  • Antes de la instrucción 'Dim value As Object = col.Value' agrega la siguiente instrucción: 

    If col.ColumnIndex < 3 Or col.ColumnIndex > 8 Then Continue For

    • Marcado como respuesta Dani Paredez miércoles, 10 de enero de 2018 10:23
    miércoles, 10 de enero de 2018 4:38
  • Antes de la instrucción 'Dim value As Object = col.Value' agrega la siguiente instrucción: 

    If col.ColumnIndex < 3 Or col.ColumnIndex > 8 Then Continue For

    Muchas Gracias
    miércoles, 10 de enero de 2018 10:23
  • private void button2_Click(object sender, EventArgs e)
            {
                int rowNumber ;
                DateTime Fecha;
                rowNumber =  Convert.ToInt32 (dtgContar.CurrentRow.Cells[3].Value);
                Fecha  =  Convert.ToDateTime(dtgContar.CurrentRow .Cells[4].Value );

               foreach (DataGridViewRow row in this.dtgContar.Rows)


                {

                    row.Cells[4].Value = Fecha;
                    row.Cells[2].Value = + rowNumber;

                    rowNumber = rowNumber + 1;
                }

                this.dtgContar.AutoResizeRowHeadersWidth(
                     DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);
            }
            }

    SYUFS

                                 

    Private Sub cmdnumera_Click() Dim cancel As Integer, nota As String If MsgBox(&quot; ** Atencion : Este Proced. Numera los Cks. Desea continuar ?&quot;, gnMSGBOX_Tipo) &lt;&gt; gnMSGBOX_si Then cancel = True Exit Sub Else Dim gPicture As Picture Set gPicture = cmdnumera.Picture End If Dim xlcontador, fechay As Date xlcontador = Val(TDBGrid1.Columns(&quot;nocksbackup&quot;).Value) fechay = (TDBGrid1.Columns(&quot;fecha&quot;).Value) Do While TDBGrid1.EOF = False TDBGrid1.Columns(&quot;nocheque&quot;).Value = xlcontador TDBGrid1.Columns(&quot;fecha&quot;).Value = Format(fechay, &quot;dd mmm yy&quot;) TDBGrid1.MoveNext xlcontador = xlcontador &#43; 1 Loop End Sub

    • Propuesto como respuesta Pablo Rubio martes, 16 de enero de 2018 16:48
    • Marcado como respuesta Pablo Rubio jueves, 18 de enero de 2018 16:51
    martes, 16 de enero de 2018 16:15