BackColor de solo una linea?

26/07/2005 - 12:44 por Sonia | Informe spam
hola
tengo un listview q esta ordenado x fechas
me gustaria q el backcolor de las lineas q tenga las fecha q pongo yo en un
textbox cambie respectoa las demas.
he intentado en cambiar el color pero se cambia de todo el listview.
como puedo hacer q cambia de las lineas q yo kiero?
gracias

Preguntas similare

Leer las respuestas

#1 Ch0rY
27/07/2005 - 11:56 | Informe spam
Prueba con esto, no te prometo nada, pero prueba
No he podido probarlo pues el equipo donde tengo el VB.Net esta en coma :(

'Columna operadora | fecha | dato1 | dato2|| datoN
'Subitem 0 | 1 | 2 | 3 || N-1

Private Sub txt_Fecha_TextChanged(ByVal sender As System.Object, ByVal e As
_ System.EventArgs) Handles txt_Fecha.TextChanged

' Cuando cambie la fecha en el textbox llamamos a CambiaColor
call CambiaColor

End Sub



sub CambiaColor()
' Recorremos los items (filas) del listview
' Como los items son arrays de indice 0 recorremos desde el 0 (el 1º)
' hasta el ultimo, que seria igual al nº de filas que "contiene" -1
for Contador=0 to listview.items.count-1
' si el texto del subindice(1)<-Fecha = al texto del textbox
if listview.items(Contador).subitem(1).text=txt_Fecha.text then
' Ponemos el fondo de color verde
listview.items(Contador).backcolor=color.green
'si no es igual
else
' Ponemos el fondo de color blanco
listview.items(Contador).backcolor=color.white
end if
next
end sub

a) seguro que se podria usar un for each en lugar de for next
b) si tienes varios listviews, o varios textbox, con los que debes hacer lo
mismo, podrias pasar algun argumento a la subfuncion, x cierto, pa los que
saben, es correscto llamarlo subfuncion o seria mas correcto procedimiento,
pues no debuelve ningun valor?


Chory
Respuesta Responder a este mensaje
#2 Sonia
27/07/2005 - 12:23 | Informe spam
perfecto
muchsisimas graciassss

"Ch0rY" escribió en el mensaje
news:

Prueba con esto, no te prometo nada, pero prueba
No he podido probarlo pues el equipo donde tengo el VB.Net esta en coma :(

'Columna operadora | fecha | dato1 | dato2|| datoN
'Subitem 0 | 1 | 2 | 3 || N-1

Private Sub txt_Fecha_TextChanged(ByVal sender As System.Object, ByVal e


As
_ System.EventArgs) Handles txt_Fecha.TextChanged

' Cuando cambie la fecha en el textbox llamamos a CambiaColor
call CambiaColor

End Sub



sub CambiaColor()
' Recorremos los items (filas) del listview
' Como los items son arrays de indice 0 recorremos desde el 0 (el 1º)
' hasta el ultimo, que seria igual al nº de filas que "contiene" -1
for Contador=0 to listview.items.count-1
' si el texto del subindice(1)<-Fecha = al texto del textbox
if listview.items(Contador).subitem(1).text=txt_Fecha.text then
' Ponemos el fondo de color verde
listview.items(Contador).backcolor=color.green
'si no es igual
else
' Ponemos el fondo de color blanco
listview.items(Contador).backcolor=color.white
end if
next
end sub

a) seguro que se podria usar un for each en lugar de for next
b) si tienes varios listviews, o varios textbox, con los que debes hacer


lo
mismo, podrias pasar algun argumento a la subfuncion, x cierto, pa los que
saben, es correscto llamarlo subfuncion o seria mas correcto


procedimiento,
pues no debuelve ningun valor?


Chory

Respuesta Responder a este mensaje
#3 Ch0rY
27/07/2005 - 12:23 | Informe spam
Ya esta, se mabia soltao el cable del bus del HD, y parecia que estaba
conectao.

Esto funciona

Private Sub frm_Config_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim contador As Short
Dim Dia As Date
Dim itm As ListViewItem
For contador = 0 To 50
itm = New ListViewItem(contador.ToString)
Dia = Now.AddDays(contador).Date
itm.SubItems.Add(Dia)
ListView1.Items.Add(itm)
Next
End Sub

'Columna operadora | fecha | dato1 | dato2|| datoN
'Subitem 0 | 1 | 2 | 3 || N-1

Private Sub txt_Fecha_TextChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles txt_Fecha.TextChanged

' Cuando cambie la fecha en el textbox llamamos a CambiaColor
Call CambiaColor()

End Sub



Sub CambiaColor()
' Recorremos los items (filas) del listview
' Como los items son arrays de indice 0 recorremos desde el 0 (el
1º)
' hasta el ultimo, que seria igual al nº de filas que "contiene" -1
Dim Contador As Short
Try
For Contador = 0 To ListView1.Items.Count - 1
' si el texto del subindice(1)<-Fecha empieza por el texto
del textbox
' Cambia segun se va escribiendo
If ListView1.Items(Contador).SubItems(1).Text.StartsWith
(txt_Fecha.Text) Then
' Ponemos el fondo de color Verde Claro
ListView1.Items(Contador).BackColor = Color.LightGreen
'si no es igual
Else
' Ponemos el fondo de color blanco
ListView1.Items(Contador).BackColor = Color.White
End If
Next
Catch ex As Exception
End Try
End Sub
Respuesta Responder a este mensaje
#4 Ch0rY
27/07/2005 - 13:23 | Informe spam
Sub CambiaColor()
' Recorremos los items (filas) del listview
Dim Contador As Short
Dim itm As ListViewItem
Try
For Each itm In ListView1.Items
' si el texto del subindice(1)<-Fecha empieza por el texto del
textbox
' Cambia segun se va escribiendo
If itm.SubItems(1).Text.StartsWith(txt_Fecha.Text) Then
' Ponemos el fondo de color Verde Claro
itm.BackColor = Color.LightGreen
Else
' Ponemos el fondo de color blanco
itm.BackColor = Color.White
End If
Next
Catch ex As Exception
End Try
End Sub
Respuesta Responder a este mensaje
#5 Sonia
28/07/2005 - 10:21 | Informe spam
ok. asi mucho mejor
lo unico q solo me hace los cambios del color en las lineas q he insertado
yo desde mi pc. las lineas q ha insertado otro usuario desde otro pc no
salen con los cambios de color.
pero eso no creo q tenga nada q ver con este codigo ya q me han dicho q
tengo q refrescar el caché o algo de eso, aunq no s ecomo hacerlo ya q mi
colexion es oledb. si sabes como puedo solucionar esto...

de todas formas gracias x el codigo

"Ch0rY" escribió en el mensaje
news:


Sub CambiaColor()
' Recorremos los items (filas) del listview
Dim Contador As Short
Dim itm As ListViewItem
Try
For Each itm In ListView1.Items
' si el texto del subindice(1)<-Fecha empieza por el texto del
textbox
' Cambia segun se va escribiendo
If itm.SubItems(1).Text.StartsWith(txt_Fecha.Text) Then
' Ponemos el fondo de color Verde Claro
itm.BackColor = Color.LightGreen
Else
' Ponemos el fondo de color blanco
itm.BackColor = Color.White
End If
Next
Catch ex As Exception
End Try
End Sub

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida