Private Sub Form_Load()
    Dim itmX As ListItem
    Set itmX = ListView1.ListItems.Add(1, "Sal", "Sales", 1, 1)
    Set itmX = ListView1.ListItems.Add(2, "His", "Customer History", 4, 4)
    Set itmX = ListView1.ListItems.Add(3, "Reg", "Customer Registration", 5, 5)
    Set itmX = ListView1.ListItems.Add(4, "All", "Print All Outstandings", 3, 3)
    Set itmX = ListView1.ListItems.Add(5, "Cus", "Print A Customer's Outstandings", 2, 2)
    Set itmX = ListView1.ListItems.Add(6, "Due", "Print All Due Payments", 6, 6)
    Set itmX = ListView1.ListItems.Add(7, "Pay", "Settle Invoice", 7, 7)
    Set itmX = ListView1.ListItems.Add(8, "Chk", "Check Invoice", 8, 8)
    '--
    AddBitMapsToMenu
    'ListView1.Arrange
    OpenDB
    
End Subadd方法后面的(1, "Sal", "Sales", 1, 1)各个参数是什么意思啊?

解决方案 »

  1.   

    Add(index, key, text, icon, smallIcon)
      

  2.   

    查MSDN拉返回 ListView 控件中 ListItem 对象集合的引用。语法object.ListItemsobject 所在处代表对象表达式,其值是 ListView 控件。说明可使用标准集合方法操作 ListItem 对象。集合中每个 ListItem 可通过其唯一关键字访问,此关键字在 Key 属性中创建并存贮。也可使用 Index 属性根据 ListItem 对象的显示位置检索 ListItem 对象。
    =======================================================================
    下面的示例使用 Biblio.mdb 数据库作为资源,通过 ListItem 对象移居 ListView 控件。要试用此例,请将一个 ListView 控件放置在窗体上,并将代码粘贴到窗体的声明部分。还必须确保已将 Biblio.mdb 安装在机器上。在以下代码中检查 OpenDatabase 函数中的路径,并改变它,使之反映 Biblio.mdb 在机器上的实际路径。注意 除非添加到 Microsoft DAO 3.5 对象库的“引用”,否则示例无法运行。为此,在 Project 菜单上单击 References。搜索 Microsoft DAO 3.5 对象库并单击复选框来选择。Private Sub Form_Load()
       '添加 ColumnHeaders。列宽度等于控件宽度
       '除以 ColumnHeader 对象的数目。
       ListView1.ColumnHeaders. _
       Add , , "Author", ListView1.Width / 3)
       ListView1.ColumnHeaders. _
       Add , , "Author ID", ListView1.Width / 3, _
       lvwColumnCenter
       ListView1.ColumnHeaders. _
       Add , , "Birthdate", ListView1.Width / 3)
       
       ' Set View property to Report.
       ListView1.View = lvwReport 
       '为数据访问对象声明对象变量。
       Dim myDb As Database, myRs As Recordset
       '设置 Database 为 BIBLIO.MDB 数据库。
       ' IMPORTANT: the Biblio.mdb must be on your
       ' machine, and you must set the correct path to
       ' the file in the OpenDatabase function below.
       Set myDb =    DBEngine.Workspaces(0) _
          .OpenDatabase("c:\Program Files\VB\BIBLIO.MDB")
       '设置 recordset 为 "Authors" 表。
       Set myRs = _
       myDb.OpenRecordset("Authors", dbOpenDynaset)
       
       '声明变量以添加 ListItem 对象。
       Dim itmX As ListItem   '若当前记录不是最后一条记录,则添加一个 ListItem 对象。
       'ListItem 对象的文本使用 author 字段。
       'ListItem 对象的 SubItem(1) 使用 AuthorID 字段。
       'ListItem 对象的 SubItem(2) 使用 "Year of Birth" 字段。   While Not myRs.EOF
          Set itmX = ListView1.ListItems. _
          Add(, , CStr(myRs!Author),1)   'Author 字段。
          
          '若 AuthorID 字段不为空,则将 SubItem 1 设置为此字段。
          If Not IsNull(myRs!Au_id) Then
             itmX.SubItems(1) = CStr(myRs!Au_id)   ' Author ID。
          End If      '若 birth 字段不为空,则将 SubItem 2 设置为此字段。
          If Not IsNull(myRs![Year Born]) Then
             itmX.SubItems(2) = myRs![Year Born]
          End If
          myRs.MoveNext   '移动到下一条记录。
       Wend
    End Sub
      

  3.   

    这是一个综合实例  自己慢慢看吧Option Explicit
    'Variables to workaround the fact that there is no ItemDblClick EventDim xpos As Long, ypos As Long
    '文件名是否可以换行
    Private Sub Check1_Click()
    If Check1.Value Then
        ListView1.LabelWrap = True
    Else
        ListView1.LabelWrap = False
    End IfEnd Sub'是否隐藏列
    Private Sub Check2_Click()
    If Check2.Value Then
        ListView1.HideColumnHeaders = True
    Else
        ListView1.HideColumnHeaders = False
    End If
    End Sub'一个失去焦点时的小效果
    Private Sub Check3_Click()
    If Check3.Value Then
        ListView1.HideSelection = True
    Else
        ListView1.HideSelection = False
    End If
    End Sub'文件名是否可以编辑
    Private Sub Check4_Click()
    If Check4.Value Then
            'lvwAutomatic表示可以编辑
        ListView1.LabelEdit = lvwAutomatic
    Else
            'lvwManual表示不可以编辑
        ListView1.LabelEdit = lvwManual
    End If
            '两次点击图标便可以编辑了(两次点击应间隔一秒或以上)
    End Sub'ListView的显示方法
    Private Sub Combo1_Click()
    Select Case Combo1.ListIndex
    Case 0:
        '大图标显示
        ListView1.View = lvwIcon
    Case 1:
        '小图标显示
        ListView1.View = lvwSmallIcon
    Case 2:
        '列表显示
        ListView1.View = lvwList
    Case 3:
        '详细列表显示
        ListView1.View = lvwReport
    End SelectEnd Sub'图标的排列方式
    Private Sub Combo2_Click()
    Select Case Combo2.ListIndex
    Case 0:
        '自动排列
        ListView1.Arrange = 0 'lvwNoArrange
    Case 1:
        '靠左排列
        ListView1.Arrange = lvwAutoLeft
    Case 2:
        '靠上排列
        ListView1.Arrange = lvwAutoTop
    End SelectEnd Sub'添加列(只在使用"详细资料"显示图标时才有效)
    Private Sub Command1_Click()
    ListView1.ColumnHeaders.Add , , Text3.Text
    End Sub
    '删除列(只在使用"详细资料"显示图标时才有效)
    Private Sub Command2_Click()
        '从最末一列删起
    ListView1.ColumnHeaders.Remove ListView1.ColumnHeaders.Count
    End Sub'建立文件夹模块
    Private Sub Command3_Click()
    Dim itmX As ListItem
    Dim reply As IntegerIf MsgBox("这将在您的系统中建立一个真的文件夹,是否继续?", vbYesNo + vbExclamation) = vbNo Then Exit SubOn Error Resume Next '错误处理MkDir Text1.Text '调用"MkDir"函数建立新文件夹'当用户建立的文件名非法时的错误处理
    If Err Then
        MsgBox "文件名不能包括以下字符: " & vbCrLf & "\ / : * ? “ <>|", vbCritical
        Exit Sub
    End If'使用Set语句在ListView1中增加一个文件夹图标
    On Error GoTo 0
    Set itmX = ListView1.ListItems.Add(, , Text1.Text)
    itmX.Icon = 1           ' 设置一个大图标
    itmX.SmallIcon = 1      ' 设置一个小图标End Sub'查找模块
    Private Sub Command4_Click()
    Dim itmFound  As ListItem'从文件的文件名中查找关键字
    Set itmFound = ListView1.FindItem(Text2.Text, lvwText, , lvwPartial)
    '假如未查找到便显示Msgbox并退出
    '如果找到了则反色显示
    If itmFound Is Nothing Then
        MsgBox "没有查找到", vbInformation
        Exit Sub
    Else
        itmFound.EnsureVisible ' 反色显示查找到的文件名
        itmFound.Selected = True ' 并选中此文件
        '设置焦点给ListView1,以便更好的显示
        ListView1.SetFocus
    End IfEnd Sub
      

  4.   


    '给File1,Dir1建立关系,使之互动
    Private Sub Dir1_Change()
    File1.Path = Dir1.Path
    End Sub'给Dir1,Drive1建立关系,使之互动
    Private Sub Drive1_Change()
    Dir1.Path = Drive1.Drive
    End Sub'程序启动时所作的多项设置
    Private Sub Form_Load()
    '设置各种变量
    Dim NameOfFile As String
    Dim clmX As ColumnHeader
    Dim itmX As ListItem
    Dim Counter As Long
    Dim dname As String
    Dim TempDname As String
    Dim counter2 As Integer
    Dim CurrentDir As StringApp.Title = "ListView 控件演示" '设置程序主窗体的标题
    '设置Combo1和Combo2的ListIndex均为0
    Combo1.ListIndex = 0
    Combo2.ListIndex = 0' 为详细显示设置三个默认的列
    ListView1.ColumnHeaders.Add , , "名称", ListView1.Width / 3
    Set clmX = ListView1.ColumnHeaders.Add(, , "大小", ListView1.Width / 3)
    Set clmX = ListView1.ColumnHeaders.Add(, , "修改日期", ListView1.Width / 3)
        
    ListView1.BorderStyle = ccFixedSingle ' 设置ListView1的样式
        
    ' 使用ImageList设置ListView1的各个显示模式下的图标' 小图标设置
    ListView1.Icons = ImageList1
    ListView1.SmallIcons = ImageList2'设置当前驱动器和目录
    ChDrive Drive1.Drive
    Dir1.Path = CurDir'必要时可以加入以下代码
    'If Right(CurrentDir, 1) <> "\" Then CurrentDir = CurrentDir & "\"
    'Dir1.Path = CurrentDir
    'Dir1.Path = Drive1.Drive'NameOfFile = Dir$(CurrentDir & "*.*", vbDirectory)
    Dim Fname As String' 假如在子目录,设置返回上级目录的图标
    If Right(Dir1.Path, 1) <> "\" Then
        CurrentDir = Dir1.Path & "\"
        dname = ".."
        Set itmX = ListView1.ListItems.Add(, , dname)
        itmX.SubItems(1) = ""
        itmX.Icon = 3           '  设置一个大图标
        itmX.SmallIcon = 3      '  设置一个小图标
        itmX.SubItems(2) = ""
    Else
        '假如在根目录
        CurrentDir = Dir1.Path
    End If'得到文件名
    '使用For...Next语句重复执行此过程
    For Counter = 0 To File1.ListCount - 1
        Fname = File1.List(Counter)
        Set itmX = ListView1.ListItems.Add(, , Fname)
        itmX.SubItems(1) = CStr(FileLen(CurrentDir & Fname))
        itmX.Icon = 2           '  设置一个大图标
        itmX.SmallIcon = 2      '  设置一个小图标
        itmX.SubItems(2) = FileDateTime(CurrentDir & Fname) '得到创建时间
    Next Counter'得到目录名
    For Counter = 0 To Dir1.ListCount - 1
        dname = Dir1.List(Counter)
        For counter2 = Len(dname) To 1 Step -1
            If Mid$(dname, counter2, 1) = "\" Then
                TempDname = Right(dname, Len(dname) - counter2)
                Exit For
            End If
        Next counter2
        Set itmX = ListView1.ListItems.Add(, , TempDname)
        itmX.SubItems(1) = ""
        itmX.Icon = 1           '  设置一个大图标
        itmX.SmallIcon = 1      '  设置一个小图标
        itmX.SubItems(2) = FileDateTime(dname)
    Next CounterListView1.View = lvwIcon                '图标的显示方式为大图标
    ListView1.Arrange = 0                    '图标的排列方式为自动排列
    ListView1.LabelWrap = True           '文件名换行显示为真
    ListView1.Sorted = True                 '文件名自动排列为真Form1.Caption = "ListView 控件演示 - " & Dir1.Path  '设置主窗体的标题
    End Sub'设置文件名的排序方式
    Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)
    ListView1.SortKey = ColumnHeader.Index - 1End Sub
    '双击文件夹图标时的操作
    Private Sub ListView1_DblClick()
    Dim Counter As Long
    Dim itmX As ListItem
    Dim NameOfFile As String
    Dim dname As String
    Dim TempDname As String
    Dim counter2 As Integer
    Dim Item As ListItem
    Dim CurrentDir As String'当拖动文件夹图标时的操作
    If ListView1.HitTest(xpos, ypos) Is Nothing Then
        Exit Sub
    Else
        Set Item = ListView1.HitTest(xpos, ypos)
    End If
    '设置变量 Item = ListView1.SelectedItem'假如点击图标则
    If Right(Dir1.Path, 1) <> "\" Then
        CurrentDir = Dir1.Path & "\"
    Else
        CurrentDir = Dir1.Path
    End IfIf (GetAttr(CurrentDir & Item) And vbDirectory) <= 0 Then Exit Sub
    ListView1.ListItems.Clear '清除旧图标'改变选择的目录  - 让Visual Basic来做这个工作吧
    ChDir ItemDir1.Path = CurDirDim Fname As String'假如不在根目录中,则显示返回上一级目录的图标
    If Right(Dir1.Path, 1) <> "\" Then
        CurrentDir = Dir1.Path & "\"
        dname = ".."
        Set itmX = ListView1.ListItems.Add(, , dname)
        itmX.SubItems(1) = ""
        itmX.Icon = 3           '  设置一个大图标
        itmX.SmallIcon = 3      '  设置一个小图标
        itmX.SubItems(2) = ""
    Else
        '假如在根目录中
        CurrentDir = Dir1.Path
    End If'开始增加一个新文件
    For Counter = 0 To File1.ListCount - 1
        Fname = File1.List(Counter)
        Set itmX = ListView1.ListItems.Add(, , Fname)
        itmX.SubItems(1) = CStr(FileLen(CurrentDir & Fname))
        itmX.Icon = 2           '  设置一个大图标
        itmX.SmallIcon = 2      '  设置一个小图标
        itmX.SubItems(2) = FileDateTime(CurrentDir & Fname)
    Next Counter'添加新的列
    For Counter = 0 To Dir1.ListCount - 1
        dname = Dir1.List(Counter)
        '得到真实的名称
        For counter2 = Len(dname) To 1 Step -1
            If Mid$(dname, counter2, 1) = "\" Then
                TempDname = Right(dname, Len(dname) - counter2)
                Exit For
            End If
        Next counter2
        Set itmX = ListView1.ListItems.Add(, , TempDname)
        itmX.SubItems(1) = ""
        itmX.Icon = 1           '  设置一个大图标
        itmX.SmallIcon = 1      '  设置一个小图标
        itmX.SubItems(2) = FileDateTime(dname)
    Next Counter
    Form1.Caption = "ListView 控件演示 - " & CurrentDirEnd SubPrivate Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    '设置鼠标的坐标
    xpos = x
    ypos = yEnd SubPrivate Sub mabout_Click()
    '显示about窗体
    Form2.Show 1
    End SubPrivate Sub mexit_Click()
    '退出Form1
    Unload Form1
    End
    End Sub
      

  5.   

    我的MSDN是日文的,看得比较吃力。没有办法,在外面向看个中文的都难啊,哈哈
      

  6.   


    Public Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
    我对象这样的代码也看不懂,建议以下我看哪方面的资料能帮助我弄懂这些阿,谢啦
      

  7.   

    GetMenu VB声明 
    Declare Function GetMenu Lib "user32" Alias "GetMenu" (ByVal hwnd As Long) As Long 
    说明 
    取得窗口中一个菜单的句柄 
    返回值 
    Long,依附于指定窗口的一个菜单的句柄(如果有菜单);否则返回零 
    参数表 
    参数 类型及说明 
    hwnd Long,窗口句柄。对于vb,这应该是一个窗体句柄。注意可能不是子窗口的句柄 Top
     
      

  8.   

    Add 方法(ListItems 集合)
          添加 ListItem 对象到 ListView 控件的 ListItems 集合中并返回新创建对象的引用。语法object.Add(index, key, text, icon, smallIcon)Add 方法的语法包含下面部分:部分 描述 
    object 必需的。对象表达式,其值是 ListItems 集合。 
    index 可选的。指定在何处插入 ListItem 的整数。若未指定索引,则将 ListItem 添加到 ListItems 集合的末尾。 
    key 可选的。唯一的字符串表达式,用来访问集合成员。 
    text 可选的。与 ListItem 对象控件关联的字符串。 
    icon 可选的。当 ListView 控件设为图标视图时,此整数设置从 ImageList 控件中选定的欲显示的图标。 
    smallIcon 可选的。当 ListView 控件设为小图标时,此整数设置从 ImageList 控件中选定的欲显示的图标。 
    说明设置 Icons 或 SmallIcons 属性之前必须先初始化它们。有两种初始化方法:在设计时,使用 ListView 控件属性对话框的“通用”选项卡指定 ImageList 对象;在运行时,使用下列代码初始化:ListView1.Icons = ImageList1   '假设 Imagelist 为 ImageList1。
    ListView1.SmallIcons = ImageList2 如果列表尚未排序,则可使用 index 参数将 ListItem 对象插入到任意位置。如果列表已排序,则将忽略 index 参数并根据排序顺序把 ListItem 对象插入到适当的位置。若未提供 index,则 ListItem 对象将被添加一个索引,此索引等于集合中 ListItem 对象的数目加 1。当希望对象的 Index 属性可变更时,例如希望动态地从集合中添加和删除对象时,使用 Key 属性引用 ListItems 集合的成员。