Detectar el cambio de valor en una columna de un datagridview
-
miércoles, 02 de mayo de 2012 15:47
Tengo un datagridview al que voy añadiendo filas cada vez que hago un cálculo. Algunas celdas de la fila cambian de valor y otras no y las que cambian no son siempre las mismas. ¿Cómo puedo detectar, en una columna que ese valor ha cambiado con respecto a la fila anterior?. Quiero detectar el cambio para cambiar el color de fondo de la nueva celda si tiene un valor diferente a la de la fila anterior.
Muchas gracias
Todas las respuestas
-
miércoles, 02 de mayo de 2012 15:53Moderador
¿Cómo puedo detectar, en una columna que ese valor ha cambiado con respecto a la fila anterior?.
como seria eso de la fila anterior ? por anterior apuntas a la misma fila pero original o a la fila de arriba de la que editas
si es la misma fila podrias usar el
http://social.msdn.microsoft.com/Forums/es/vbes/thread/e350cde4-b2a6-42ad-8a29-ed0f56728eab
podrias usar los eventos CellBeginEdit y CellEndEdit para detectar cuado cambia un valor y alli mismo cambiar el color
Leandro Tuttini
Blog
Buenos Aires
Argentina- Editado Leandro TuttiniMVP, Moderator miércoles, 02 de mayo de 2012 15:55
-
miércoles, 02 de mayo de 2012 16:32Me refiero a la fila de arriba de la que edito
-
miércoles, 02 de mayo de 2012 17:14Moderador
podrias usar los eventos que menciono, especialmente el CellEndEdit
pero para validar y acceder a la fila superior usarias
e.RowIndex
restandole uno
DataGridView1.Rows(e.RowIndex -1)
por supuesto valida sino es la priemr fila la que editas, digo si el
e.RowIndex -1 no toma un valor negativo o si e.RowIndex = 0 es la primer fila
tomando la fila superior y comparando con la que estas editando
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Manuel Roca miércoles, 02 de mayo de 2012 23:31
-
miércoles, 02 de mayo de 2012 22:03
Estoy haciendo esto
If Convert.ToDouble(DataGridView1.Rows(rowindex(2)).Cells(2).Value) <> Convert.ToDouble(DataGridView1.Rows(rowindex(2) - 1).Cells(2).Value) Then
DataGridView1.Rows(rowindex(2)).Cells(2).Style.BackColor = Color.Yellow
End Ifpara detectar que el valor de una celda ha cambiado con respecto a la celda situada en la fila superior. ¿Qué estoy haciendo mal?, porque me da el error
No se controló ArgumentOutOfRangeException El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección.
Nombre del parámetro: index- Combinado Enrique M. MontejoMVP, Moderator jueves, 03 de mayo de 2012 9:57
-
miércoles, 02 de mayo de 2012 22:20Moderador
esta pregunta no se relaciona con esta otra
http://social.msdn.microsoft.com/Forums/es-ES/vbes/thread/8cbe0eeb-71ca-4611-a03e-e7a933e4a42c
recuerda cerrar un hilo antes de abrir otro, sino es dificil dar seguimiento
---------------
No se controló ArgumentOutOfRangeException El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección.Nombre del parámetro: index
que seria rowindex(2) ? de donde sale ese arrayen que evento es que defines ese codigo ? recuerda mencionar el contexto compelto para saber dodne lo utilizas
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina

