Revisar valor de columna checkbox en un datagridview en visual basic .net 2010

Respuesta de
a
Avatar
Usuario

Disculpa lo que sucede es que tengo una aplicación la cual cuenta con una columna checkbox para seleccionar ciertos artículos a procesar, el detalle es que en la primera corrida, si reconoce los artículos que se seleccionaron, pero en la segunda corrida ya no los reconoce, debugeando el programa observe que  la columna del checkbox aparece con valor de Nothing siendo que si estaba señalada, te paso la rutina que estoy utilizando para recorrer el griddataview, por cierto podríaestán señaladas y no que barra con todo el grid, se que con el ciclo for, le estoy diciendo que la barra, pero la pregunta es, habra otra manera de hacerlo mas dinamico, para que no se tarde tanto tiempo??</span>

información para procesar, Verifique...", "Aviso del Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
GridUsuarios.Refresh()
GridUsuarios.Columns(4).Width = 120
For fila As Integer = 0 To GridUsuarios.RowCount - 2
If CBool(GridUsuarios.Rows(fila).Cells(0).Value) And Len(GridUsuarios.Rows(fila).Cells(4).Value) = 0 Then
cTienda = Trim(
CStr(GridUsuarios.Rows(fila).Cells(2).Value()))
GridUsuarios.Rows(fila).Cells(4).Value = Ve_a_Traerte_Archivos(
CStr(GridUsuarios.Rows(fila).Cells(3).Value))
End If
Next</span>

 

De antemano muchas gracias por todo y que tengas un excelente fin de semana

Espero pronta tu respuesta.

Avatar
Experto

Hola

Existe una colección en el DataGridView llamada SelectedItems aquí tienes los rows que has sido seleccionados.

Saludos

Avatar
Usuario

Hola me podrías proporcionar un poco de código para ver como funciona, y otra pregunta, al hacer uso de esto, requiero seguir utilizando el ciclo for??? si es así como debería de ser???

 

Gracias por tu apoyo

Avatar
Experto

for each item as datagridviewrow in DataGridView1.SelectedItems

item.cells(indice)  ' Estote da el valor de una columna de la fila seleccionada de la coleccion

next

Avatar
Usuario

Muchísimas gracias, ya lo agregue, de la siguiente manera

 

Dim selectedCellCount As Integer = _
GridUsuarios.GetCellCount(
DataGridViewElementStates.Selected)
If selectedCellCount <= 0 Then
MessageBox.Show("No ha seleccionado ninguna tienda, verifique", "Aviso del Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
Else

For fila As Integer = 0 To selectedCellCount - 1
If CBool(GridUsuarios.SelectedRows(fila).Cells(0).Value()) And Len(GridUsuarios.SelectedRows(fila).Cells(4).Value) = 0 Then
cTienda = Trim(
CStr(GridUsuarios.SelectedRows(fila).Cells(2).Value()))
GridUsuarios.SelectedRows(fila).Cells(4).Value = Ve_a_Traerte_Archivos(
CStr(GridUsuarios.SelectedRows(fila).Cells(3).Value))
End If
Next
End If

 

Solo una duda si no es mucha molestia, la idea es esta, conectarme a varios lugares y copiar archivos, estos archivos son archivos zip y después de traerlos hay que descomprimirlos.

Ya los trae y al inicio lo que hacia era por medio de un shell mandar ejecutar un pkunzip para descomprimir los archivos, pero me habré por lógica, una ventana msdos por cada tienda, así que como son varias carpetas, se termina saturando la memoria y se hinibe la maquina, por lo que requiero ejecutar el zip en .net, hay una librería que descomprime, pero al montarla me manda diferentes mensajes de error, y no he podido utilizarla, si lograra hacer esto, evitaría el hecho de abrir varias ventanas msdos, y se ejecutaría en foma interna. Crees poder tener una idea como solucionar esto, te lo agadeceria como no tienes una idea.

 

GRacias