Foros del Web » Programación para mayores de 30 ;) » .NET »

¿Recorrer checkedlistbox para pintar items?

Estas en el tema de ¿Recorrer checkedlistbox para pintar items? en el foro de .NET en Foros del Web. Hola que tal. Estoy trabajando en un form de windows en visual basic, la versión de visual studio 2005 y tengo un checkedlistbox... tengo una ...
  #1 (permalink)  
Antiguo 19/04/2011, 08:41
 
Fecha de Ingreso: abril-2011
Mensajes: 9
Antigüedad: 13 años
Puntos: 0
Pregunta ¿Recorrer checkedlistbox para pintar items?

Hola que tal.
Estoy trabajando en un form de windows en visual basic, la versión de visual studio 2005 y tengo un checkedlistbox... tengo una duda, no sé como recorrer ese checkedlistbox para que seleccione los items que ya están marcados.

Tengo un query (la pondré porsiacaso)
Cita:
MiComando.CommandText = "select per_pro.id_per_fk, from consultor, " & _
"per_pro, proyectos where consultor.id_con = per_pro.id_per_fk and proyectos.id_pro = per_pro.id_pro_fk and " & _
"proyectos.id_pro = '" & cb_nom_pro.ValueMember & "'"

Y este código para que los seleccione:
Cita:
'For c As Integer = 0 To miDS.Tables(0).Rows.Count - 1

ConsultoresEnProyecto.Add(miDS.Tables(0).Rows(c)(0 ))
checkedlistbox1.SetItemCheckState(c, CheckState.Checked)
checkedlistbox1.SetItemChecked(c, True)
Ese ùltimo código me marca items, pero no los que deben, sólo me llena los items que encuentra por orden, pero no los que deberían estar seleccionados...

Por favor, si alguien sabe o a echo algo así que me diga como solucionarlo, llevo con este problema toda estas semanas, si es posible ¡Muchas gracias!
  #2 (permalink)  
Antiguo 19/04/2011, 08:58
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: ¿Recorrer checkedlistbox para pintar items?

Hola Zergatul para saber quienes estan seleccionados utiliza este codigo :

Código vb.net:
Ver original
  1. Dim i As Integer
  2.         Dim mensaje As String
  3.         mensaje  = "Items Seleccionados :" & ControlChars.CrLf
  4.         For i = 0 To (CheckedListBox1.Items.Count - 1)
  5.             If CheckedListBox1.GetItemChecked(i) = True Then
  6.                 mensaje  = mensaje  & "Item " & (i + 1).ToString & " = " & CheckedListBox1.Items(i).ToString & ControlChars.CrLf
  7.             End If
  8.         Next
  9.         MessageBox.Show(mensaje )
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 19/04/2011, 09:30
 
Fecha de Ingreso: abril-2011
Mensajes: 9
Antigüedad: 13 años
Puntos: 0
Respuesta: ¿Recorrer checkedlistbox para pintar items?

Hola aquaventus, muchas gracias por la respuesta. Soy algo lerdo en visual basic. Pero por lo que estoy viendo en tu respuesta me muestra un msgbox de los que seleccioné manualmente.
Tal vez mi pregunta no se entendió bien, lo que quiero hacer esque en base a la query que expongo arriba, automáticamente se seleccionen los items del checkedlistbox en base al resultado que salió en esa query

saludos ;).
Disculpa en caso que la respuesta que me diste era lo que estoy preguntando en verdad. Muchas gracias
  #4 (permalink)  
Antiguo 19/04/2011, 09:44
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: ¿Recorrer checkedlistbox para pintar items?

ah ok, entonces podrias colocar tu codigo de como cargas los datos a tu checkedlistbox para ver como comparas cuales estan marcadas para hacer los respectivos checks. Saludos!
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #5 (permalink)  
Antiguo 19/04/2011, 10:05
 
Fecha de Ingreso: abril-2011
Mensajes: 9
Antigüedad: 13 años
Puntos: 0
Respuesta: ¿Recorrer checkedlistbox para pintar items?

Cita:
Private Sub llenar_clb_TODOS_consultores()

Dim MiConexion As New OleDb.OleDbConnection

MiConexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Documents and Settings\practia\Escritorio\practia trabajo\Empresa - copia\staff2003.mdb"

MiConexion.Open()

Dim MiComando As New OleDb.OleDbCommand

MiComando.Connection = MiConexion

MiComando.CommandText = "select * from consultor"

Dim miDA As New OleDb.OleDbDataAdapter
Dim miDS As New DataSet

miDA.SelectCommand = MiComando

'El Data adapter llena el data set
miDA.Fill(miDS)

Dim X As Integer
max = miDS.Tables(0).Rows.Count

For X = 0 To max - 1
cbl_consultores.Items.Add(miDS.Tables(0).Rows(X)(3 ) + " " + miDS.Tables(0).Rows(X)(4))
guardarId.Add(miDS.Tables(0).Rows(X)(0))

Next

'Cerramos la conexion
MiConexion.Close()

End Sub
De esta manera traigo los nombres de los items (son consultores) que existen de la base de datos al checkedlistbox. En caso que hayan detalles que no se entiendan mucho, puse un array (guardarId) al momento de llamar a los consultores, que lo marqué en negrita. Ese array guarda las Id's de los consultores que muestra el checkedlistbox. Los consultores los traigo por nombre y apellido al checkedlistbox.
  #6 (permalink)  
Antiguo 19/04/2011, 10:19
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: ¿Recorrer checkedlistbox para pintar items?

ok hasta ahi bien, ahora como puedo saber que campos se van a marcar? que columna del datatable dentro de tu dataset es el que identifica que se van a marcar?
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #7 (permalink)  
Antiguo 19/04/2011, 10:25
 
Fecha de Ingreso: abril-2011
Mensajes: 9
Antigüedad: 13 años
Puntos: 0
Respuesta: ¿Recorrer checkedlistbox para pintar items?

Cita:
Iniciado por Aquaventus Ver Mensaje
ok hasta ahi bien, ahora como puedo saber que campos se van a marcar? que columna del datatable dentro de tu dataset es el que identifica que se van a marcar?
Aquaventus, gracias por tu tiempo por intentar ayudarme. Compadrito, espero no molestartem, ahora no estoy en la sala ya que estoy ahora en horario de colación. No creo que tarde mucho, vuelvo y posteo.

PD: Sobre tu pregunta, ¿tu quieres que te mande la query con la que indico que campos se marcan?, la query está arriba en todo caso ¿o deseas otro detalle?.

vaaale
  #8 (permalink)  
Antiguo 19/04/2011, 10:30
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: ¿Recorrer checkedlistbox para pintar items?

ok tienes tu query... pero eso no me dice mucho sobre ¿que campos se van a seleccionar?, si bien esa consulta llena tu checkedlistbox debe haber algun campo "X" donde represente que 1 = "marcado" ó 0 = "no marcado", para yo saber que items se van a checkear, espero haber sido claro. Saludos!
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #9 (permalink)  
Antiguo 19/04/2011, 12:10
 
Fecha de Ingreso: abril-2011
Mensajes: 9
Antigüedad: 13 años
Puntos: 0
Respuesta: ¿Recorrer checkedlistbox para pintar items?

Cita:
Iniciado por Aquaventus Ver Mensaje
ok tienes tu query... pero eso no me dice mucho sobre ¿que campos se van a seleccionar?, si bien esa consulta llena tu checkedlistbox debe haber algun campo "X" donde represente que 1 = "marcado" ó 0 = "no marcado", para yo saber que items se van a checkear, espero haber sido claro. Saludos!
Hola. Disculpa la demora.
Eso que preguntas creo que vendría siendo mi duda, porque el checkedboxlist me marca consultores, pero no me marca los que tienen que marcarse, sólo los "pinta" por orden... no sé cómo especificarle cuales tienen que ser.

éste es el método que tengo que marca en el checkedboxlist
Cita:
Private Sub mostrar_consultores_en_proyectos()

Dim y As New ArrayList
Dim x As New ArrayList


For i As Integer = 0 To Me.cbl_consultores.Items.Count - 1
x.Add(guardarId.Item(i))
Next


For i As Integer = 0 To x.Count - 1

Dim MiConexion As New OleDb.OleDbConnection

MiConexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Documents and Settings\practia\Escritorio\practia trabajo\Empresa - copia\staff2003.mdb"

MiConexion.Open()

Dim MiComando As New OleDb.OleDbCommand

MiComando.Connection = MiConexion

MiComando.CommandText = "select per_pro.id_per_fk, consultor.nom_con from consultor, " & _
"per_pro, proyectos where consultor.id_con = per_pro.id_per_fk and proyectos.id_pro = per_pro.id_pro_fk and " & _
"proyectos.id_pro = '" & cb_nom_pro.ValueMember & "'"


Dim miDA As New OleDb.OleDbDataAdapter
Dim miDS As New DataSet

miDA.SelectCommand = MiComando

miDA.Fill(miDS)



If miDS.Tables(0).Rows.Count > 0 Then

For c As Integer = 0 To miDS.Tables(0).Rows.Count - 1

ConsultoresEnProyecto.Add(miDS.Tables(0).Rows(c)(0 ))
cbl_consultores.SetItemCheckState(c, CheckState.Checked)
cbl_consultores.SetItemChecked(c, True)

Next


End If

Next
End Sub
Muchas gracias, responde cuando puedas. En caso que no sepas o no tengas tiempo, me avisas por favor. Vale ;)

Última edición por Zergatul; 19/04/2011 a las 12:20
  #10 (permalink)  
Antiguo 19/04/2011, 13:16
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: ¿Recorrer checkedlistbox para pintar items?

entonces...?? no entiendo porque llenas sino sabes cuales marcar???, para eso deberias tener un campo mas en tu tabla con valor 0 o 1 para identificar cuales marcar al momento de llamar.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #11 (permalink)  
Antiguo 19/04/2011, 13:45
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: ¿Recorrer checkedlistbox para pintar items?

mira lo que haces esta bien pero ahi en tu for tienes que identificar ¿Qué o Cuales quieres marcar? por ejemplo :

Trabajando con un "SUPUESTO" que aquellos que tengan estado "habilitado" esten marcados :
Código vb.net:
Ver original
  1. '        'Recorro toda la lista
  2.         For i = 0 To (CheckedListBox1.Items.Count - 1)
  3.             'Aquellos que digan "habilitados" se marcaran
  4.             If CheckedListBox1.Items(i).ToString.Equals("habilitado") Then
  5.                 'Los marco
  6.                 CheckedListBox1.SetItemChecked(i, True)
  7.             End If
  8.         Next

Espero que me hayas comprendido. que para que selecciones a un item debes saber ¿Cuales vas a seleccionar? por algo en particular. Saludos!
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #12 (permalink)  
Antiguo 20/04/2011, 11:10
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Respuesta: ¿Recorrer checkedlistbox para pintar items?

saludos ....
si tienes en la tabla los valores para marchar el checklist lo que debes realizar es consultar los datos arrojarlos a un data table y crear un for each en donde recorres la tabla y determinas si el registro que lleve el for each tiene como valor true para que te marqhe la opcion....
  #13 (permalink)  
Antiguo 29/07/2011, 12:01
Avatar de rikakashi  
Fecha de Ingreso: julio-2011
Mensajes: 226
Antigüedad: 12 años, 9 meses
Puntos: 33
Respuesta: ¿Recorrer checkedlistbox para pintar items?

Yo tengo una duda respecto a esto... yo cargo mis datos y los muestro en mi CheckedListBox. como puedo realizar esta comparacion

mi item seleccionado = checked true
  #14 (permalink)  
Antiguo 29/07/2011, 12:41
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 19 años, 6 meses
Puntos: 8
Respuesta: ¿Recorrer checkedlistbox para pintar items?

Que tal colega, aqui esta tu solucion:

for (int i = 0; i < CheckedListBox.Items.Count; i++)
{
CheckedListBox.SetItemChecked(i, false);
}

Saludos.

PD: si te sirvio calificame!!
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."

Etiquetas: vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:38.