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

ComboBox para NavegadorWeb

Estas en el tema de ComboBox para NavegadorWeb en el foro de .NET en Foros del Web. Hola a todos!! Estoy haciendo un navegador web y me he quedado "atascaillo", pues consigo que se guarden las direcciones en el combobox, pero se ...
  #1 (permalink)  
Antiguo 20/12/2012, 13:18
 
Fecha de Ingreso: noviembre-2012
Mensajes: 12
Antigüedad: 11 años, 5 meses
Puntos: 0
Información ComboBox para NavegadorWeb

Hola a todos!!

Estoy haciendo un navegador web y me he quedado "atascaillo", pues consigo que se guarden las direcciones en el combobox, pero se repiten si pongo la misma dirección varias veces, y no se deben de repetir, y también, no debe guardar el about:blank

he creado un método que luego llamaré en el evento webbrowser_documentCompleted, puesto que no quiero que se guarden hasta que se haya cargado la página, por si ésta no esxistiera o la escribiéramos mal.

El método es:

Private Sub buscadirecciones(ByVal buscar As String)
Dim i As Integer
For i = 0 To ComboBox1.Items.Count - 1
If buscar <> ComboBox1.Items(i) And buscar <> "about:blank" Then
ComboBox1.Items.Add(buscar)
i = i + 1
End If
Next

End Sub

Seguro que es una chorrada, pero me está volviendo loco...

Gracias a tod@s!!!
  #2 (permalink)  
Antiguo 24/12/2012, 22:47
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: ComboBox para NavegadorWeb

Puedes probar a hacer lo siguiente, esto lo estoy usando yo para ver que formularios estan abiertos ya y no volver a abrirlos.

Código vb:
Ver original
  1. ' Este lo declaras dentro del Class
  2. Public ControlAbiertos As New List(Of String)
  3.  
  4. ' Esto ya iria en una funcion
  5. If Not ControlAbiertos.Contains(Pagina) Then            
  6.             ControlAbiertos.Add(Pagina)
  7. End If

Te explico por encima lo que se pretende conseguir con esto:

ControlAbiertos es una lista de Strings (En este caso las URL)
Pagina es la URL que le estas intentando meter

El IF te esta buscando lo que estas intentando meter en la lista que ya tienes, si no lo a encontrado lo mete, sino no hace nada.

Luego para rellenar el control del combo puedes hacer un For Each a ControlAbiertos, que contendrá todas las páginas abiertas sin que esten repetidas.
Dentro del IF tambien le puedes meter la parte de que si la página es "about:blank" que tampoco la meta.

Como digo siempre este es un código de ejemplo, luego cada uno lo adapta a las necesidades que se tengan.

Código vb:
Ver original
  1. Dim ControlAbiertos As New List(Of String)
  2.         Dim Pagina As String
  3.         Pagina = "" ' Aqui tienes que meterle la url según la estés obteniendo.
  4.        ' Esto ya iria en una funcion
  5.        If Not ControlAbiertos.Contains(Pagina) And Pagina <> "about:blank" Then
  6.             ControlAbiertos.Add(Pagina)
  7.         End If
  8.  
  9.         ' Esto seria por ejemplo para llenar con las paginas
  10.        For Each Urls In ControlAbiertos
  11.             ComboBox1.Items.Add(Urls)
  12.         Next

Luego en el caso de querer borrar alguna URL simplemente le haces un ControlAbiertos.Remove(Pagina) y listo.

Espero que te sirva el ejemplo y consigas lo que necesitas.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #3 (permalink)  
Antiguo 10/01/2013, 06:43
 
Fecha de Ingreso: noviembre-2012
Mensajes: 12
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: ComboBox para NavegadorWeb

Gracias por la respuesta bookmaster, pero se guardan las direcciones,pero pasándole lo mismo que a mi, que se repiten las direcciones en el desplegable.

Seguiré investigando

Muchas gracias de nuevo y perdona la tardanza pero dejé apartado el navegador durante un tiempito porque estaba con otros trabajos.

Un saludo!!

Etiquetas: combobox
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 16:44.