Te contesto de memoria mientras recupero el código de un backup. El evento seguro era uno de los de teclado (keypress, keydown). Dentro de la rutina del evento verifico que la columna sea la última (por nombre de columna) y si es asi paso a chequear los valores de CurrentRow. Entre la row en uso y los nombres de las columnas me manejo para cambiar el color de fondo.
Saludos Jorge. PD: Mas tarde posteo el código. ________________________________ De: Analia <[email protected]> Para: [email protected] Enviado: lunes 13 de julio de 2009, 15:21:02 Asunto: [puntonet] Validar datos en datagriview Jorge, estuve probando pero no pude solucionar el tema. Una pregunta , en que evento validas los campos y si da error como cambias de color la celda. Usando currentcell? Saludos. Analia ________________________________ De:[email protected] [mailto: [email protected] ] En nombre de Jorge Monsalvo Enviado el: Lunes, 13 de Julio de 2009 10:46 a.m. Para: [email protected] Asunto: [puntonet] Validar datos en datagriview Analía, En un caso similar al tuyo (una aplicación para registrar pedidos) me resultó más fácil crear un nuevo datagridrow y agregarlo al final de la validación de la row actual. O sea, como mi aplicación esta pensada en un data entry que usa mas el teclado que el mouse, al detectar la tecla "enter" en el último campo del renglón, valido los campos, y si está todo ok creo la nueva fila, sino, muestro donde está el error cambiando de color la celda. Mas que una solución es una idea, espero que te sirva. Saludos Jorge. PD: Si puedo recuperar el código del forms te lo mando. ________________________________ De:Analia <[email protected]> Para: [email protected] Enviado: sábado 11 de julio de 2009, 13:30:17 Asunto: [puntonet] Validar datos en datagriview Hola a todos, estoy un poco enrrollada desarrollando una factura y para cargar los items de la misma utilizo un datagridview. Todo me quedo muy lindo pero tengo el problema que no se como se puede validar que el usuario no ingrese un nuevo renglon sin que haya completado todos los campos del renglon anterior. Detectarlo lo detecto con este codigo: PrivateSub DataGridView1_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles DataGridView1.CellValidating Ifsender.currentcell.rowindex > 0 Then Dim col For Each col In sender.columns If String.IsNullOrEmpty(sender.rows(sender.currentcell.rowindex - 1).cells(col.index).value.ToString) Then Invalido = True Exit Sub End If Next End If Pero despues no se como cancelarlo. Trate de borrar el nuevo renglon con Remove , pero me dice que no esta confirmada. Probe con e.cancel=true para cancelar la edicion pero no funciona, el renglon sigue estando. La idea es que si un campo del renglon anterior esta vacio , me borre el nuevo renglon y me pare en el campo vacio. Alguen sabe como puedo lograrlo? Muchisimas gracias. Analia ________________________________ ¡Viví la mejor experiencia en la web! Descargá gratis el nuevo Internet Explorer 8 http://downloads.yahoo.com/ieak8/?l=ar ____________________________________________________________________________________ ¡Viví la mejor experiencia en la web! Descargá gratis el nuevo Internet Explorer 8 http://downloads.yahoo.com/ieak8/?l=ar
