[VB.NET]vb.net实现搜索??

来源:互联网 发布:行助手是什么软件 编辑:程序博客网 时间:2024/05/19 10:41
VB.NET源码-156个实用实例哦……<script type="text/javascript"><!--google_ad_client = "pub-8333940862668978";/* 728x90, 创建于 08-11-30 */google_ad_slot = "4485230109";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
vb.net实现搜索??
写了一个程序,想实现向按字母搜索,每敲一个字符,就显示和此前敲击的相关的项目的列表
__________________________________________________________________________
自己顶,顺便说清楚。就是有一个搜索只要输入字符,就自动按敲入的字符列出相关的项目。
__________________________________________________________________________
就像是Google搜索那种的吧?
__________________________________________________________________________
使用SendMessage函数

假设在你的项目中有一个文本框控件(TextBox),用于输入搜索文本,一个列表框控件(ListBox),用于显示匹配项目。

在TextBox的TextChanged事件中,给列表框发一条LB_FINDSTRING(&H18F)消息,该消息告

诉列表框在列表中查找匹配的项目。

代码如下:

Private const LB_FINDSTRING As Integer=&H18&

Private Sub TextBox_TextChanged(ByVal sender As Object, ByVal e As EventArgs)
SendMessage(ComboBox.Handle,LB_FINDSTRING,-1,TextBox.Text)
End Sub

注意:应先声明SendMessage函数。
__________________________________________________________________________
请楼上在指教,我查了msdn,没有这个函数的说明
__________________________________________________________________________
我显示用的是listview
__________________________________________________________________________
要沉 了.我得顶
__________________________________________________________________________
帮你顶下,我也需要
__________________________________________________________________________
LINQ

我认为这个很适合


可以自己实现,不过比较麻烦, 比较简单的 方式是 like 关键字, 比较字符相似
__________________________________________________________________________
我也需要顶
__________________________________________________________________________
你要搜索哪里的东西?放在一个数组里面还是一个数据里

3楼的代码没有看懂,能不能解释一下
__________________________________________________________________________
像百度和GOOGLE那个显示出来的下拉列表应该用什么实现?这是个问题哦
__________________________________________________________________________
3楼用的是API函数,声明如下:
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32
__________________________________________________________________________
可以使用TextBox控件的
AutoCompleteMode 、AutoCompleteCustomSource 、AutoCompleteSource
轻松实现,见下边代码。(放到Form_Load中就可以了)


VB.NET code
Me.TextBox1.AutoCompleteCustomSource.AddRange(New String() {"AAAAA", "ABBBB", "ABCCC", "BCC", "CDEFGGAA"})
Me.TextBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.TextBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource




更多说明见MSDN
__________________________________________________________________________
原创粉丝点击