control de usuario con autocomplete

11/04/2010 - 01:05 por gastoncito | Informe spam
Buenas...

Estoy tratando de realizar un control de usuario, similar a la barra de
direcciones del IE8. que contenga un autocomplete a medida que el usuario va
ingresan texto en el textbox las opciones las mostrarìa en un listbox
debajo del textbox

Por diferentes razones, necesito realizar yo al autocomplete, y no utilizar
el que ya trae el textbox.

Se me presenta el siguiente problema.

Si el control creado, tiene un tamaño en alto unicamente como el textbox que
contiene, al usarlo no me aparece las opciones ya que el tamaño es pequeño
como para mostrar las mismas. Esto lo muestro mediante un control ListBox

Agrandarlo de tamaño, evidentemente no puedo, ya que seria un control muy
grande y desproporcionado en las ventanas donde lo utilizo...

En resumen, necesito que el control donde se muestran las opciones, quede
por encima de los demas controles... y que se veapor mas que el control de
usuario tenga un tamaño menor...

no sè si alguien me entiende?

saludos. Gaston
 

Leer las respuestas

#1 SysEdw
12/04/2010 - 20:01 | Informe spam
Hola no se si estas estas buscando
es un combobox con autocompletado
espero q te sea util

Imports System.Data.SqlClient
Public Class Form1
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
(ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByRef
lParam As Integer) As Integer
Private Const CB_SETDROPPEDWIDTH As Short = &H160S
Public Sub Agrandar(ByVal Combo As ComboBox, ByVal Tamaño As Integer)
SendMessage(Combo.Handle.ToInt32, CB_SETDROPPEDWIDTH, Tamaño, 0)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim cn As SqlConnection = New SqlConnection("Data
Source=.\pacon;Initial Catalog=paconacademico;Integrated Security=True")
Dim da As SqlDataAdapter = New SqlDataAdapter("SELECT IdTipoVia,
ResumenDesTipoVia FROM Ubigeo.TipoVia", cn)
Dim ds As DataSet = New DataSet()
da.Fill(ds, "Products")

Dim tbl As DataTable = ds.Tables(0)

Dim autoComp As New AutoCompleteStringCollection
For X As Integer = 0 To tbl.DefaultView.Count - 1
autoComp.Add(tbl.Rows(X)(1))
Next
Me.ComboBox1.AutoCompleteCustomSource = autoComp
Me.ComboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
Me.ComboBox1.AutoCompleteMode = AutoCompleteMode.Suggest

'' 'Esto es para agrandar el combo
Agrandar(Me.ComboBox1, 200)
End Sub
End Class

Preguntas similares