程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> vb實現防止將重復項目添加到列表框控件中

vb實現防止將重復項目添加到列表框控件中

編輯:VB綜合教程

  Visual Basic的列表框控件中包含項目的列表,本文介紹如何檢 查列表中項目是否已經存在,以及如何將新的項目添加到列表框控件 中。

  使用SendMessage函數搜尋重復的項目

  在Visual Basic中開發應用程序時,可以使用列表框控件來創建 一個項目的列表。要將新的項目添加到列表中,可以使用AddItem方法 。該方法不能自動報告在列表框控件中是否有重復的信息存在,所以 必須在將新項目添加到列表之前檢查一下。

  使用Windows應用程序編程接口(API)的SendMessage函數可以在 列表框控件中搜尋指定的項目,該函數允許向操作系統中發送消息。 在本文的例子裡,我們讓SendMessage函數往列表框控件中執行一個LB _FINDSTRING消息。

  LB_FINDSTRING消息允許在一個列表框控件中搜索同目標字符串 相匹配的項目。該消息的第一個參數是希望進行的搜索類型,須將該 值設為0,表示從列表框控件中的第一個項目開始搜索。第二個參數是 一個字符串,它是實際希望搜索的項目。

  如果該LB_FINDSTRING消息返回值-1,則表明在列表框控件中沒有 找到目標字符串,此時可以使用AddItem方法來將新的項目添加到列表 框控件中。如果該項目已經在列表中存在,則可以簡單地顯示一個信 息框或是執行一些其它的過程,來通知用戶列表框控件中已經存在一 個重復的項目。

  樣例程序

  該程序顯示了如何確定在一個列表框控件中是否已經包含了一個 要添加到該控件中的項目。

  1.在Visual Basic中開始一個新的工程,采用缺省的方法建立For m1。

  2.將如下常量和聲明語句添加到Form1的通用聲明部分中(注意: 該聲明語句需要書寫在一行內):

  

  Private Declare Function SendMessageFind Lib "user32" Al ias "SendMessage A" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVallP aram As String) As Long
  
        Const WM_USER = &H400
  
        Const LB_ERR = (-1)
  
        Const LB_FINDSTRING = &H18F

  3.將如下代碼添加到Form1的Form_Load事件中:

  

  Private Sub Form_Load()
  
        List1.AddItem "Item #1"
  
        List1.AddItem "Item #2"
  
        List1.AddItem "Item #3"
  
        List1.AddItem "Item #4"
  
        End Sub

  4.在Form1上添加一個文本框控件,采用缺省的方法建立Text1。

  5.在Form1上添加一個列表框控件,采用缺省的方法建立List

  6.在Form1上添加一個命令按鈕控件,采用缺省的方法建立Comman d1,將Caption屬性設置為"重復"。

  7.將如下代碼添加到Command1的單擊事件中:

  

  Private Sub Command1_Click()
  
        CheckForDupes
  
        End Sub

  8.創建一個新的名為CheckForDupes的函數,將如下代碼添加到該 函數中:

  

  Sub CheckForDupes()
  
        Dim Ret As Long
  
        Dim A As String
  
        A = Text1.TEXT
  
        Ret = SendMessageFind(List1.hwnd, LB_FINDSTRING, 0, (A))
  
        If Ret = LB_ERR Then
  
        List1.AddItem Text1.TEXT
  
        Else
  
        List1.ListIndex = Ret
  
        MsgBox "重復項目-不能被添加到列表框中", 16, "錯誤"
  
        End If
  
        End Sub

  按下F5鍵來執行本程序。列表框控件中有5個項目。在文本框控 件中鍵入一個新的項目,單擊重復命令按鈕。程序將在列表框控件中 搜索剛剛鍵入到文本框控件中的項目,如果該項目未被找到,則程序將 把該項目添加到列表框控件中,如圖1;相反,如果該項目在列表框中已 經存在,則顯示出一個信息框以通知項目已經存在

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved