找回密码
 加入
搜索
查看: 1207|回复: 3

请问一个关于ListView的问题!

[复制链接]
发表于 2009-4-18 23:40:22 | 显示全部楼层 |阅读模式
主界面中创建一个 ListView1,使用 Func _List1() 来读取数据库资料并创建 ListViewItems,

之后在主界面中点击按钮打开另一界面,另一界面中再一个 ListView2,使用 Func_List2() 来读取数据库资料并创建 ListViewItems

问题在:主界面中的 ListView1 可以成功读取数据库资料,但另一界面中的 ListView2 一按按钮就出错了!!

出错行数:42 行 _GUICtrlListView_DeleteAllItems($ListView2) 的位置,每次都是提示这个出错,不知道什么原因??

代码如下:
Func _ListView2()
        $ListView2_GUI = GUICreate("ListView2", 570, 294, -1, -1)
        $ListView2 = GUICtrlCreateListView("", 8, 8, 554, 278)
        _GUICtrlListView_AddColumn($ListView2, "1", 30, 2)
        _GUICtrlListView_AddColumn($ListView2, "2", 80, 2)
        _GUICtrlListView_AddColumn($ListView2, "3", 80, 2)
        _GUICtrlListView_AddColumn($ListView2, "4", 140, 2)
        _GUICtrlListView_AddColumn($ListView2, "5", 140, 2)
        _GUICtrlListView_AddColumn($ListView2, "6", 80, 0)
        GUICtrlSendMsg($ListView2, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
        _GUICtrlListView_RegisterSortCallBack($ListView2)
        GUISetState(@SW_SHOW)
        _List2()
        
        While 1
        ............
        WEnd
        _GUICtrlListView_UnRegisterSortCallBack($ListView2)
EndFunc

Func _ListView1()
        $ListView1_GUI = GUICreate("ListView1", 570, 294, -1, -1)
        $ListView1 = GUICtrlCreateListView("", 8, 8, 554, 278)
        _GUICtrlListView_AddColumn($ListView1, "1", 30, 2)
        _GUICtrlListView_AddColumn($ListView1, "2", 80, 2)
        _GUICtrlListView_AddColumn($ListView1, "3", 80, 2)
        _GUICtrlListView_AddColumn($ListView1, "4", 140, 2)
        _GUICtrlListView_AddColumn($ListView1, "5", 140, 2)
        _GUICtrlListView_AddColumn($ListView1, "6", 80, 0)
        GUICtrlSendMsg($ListView1, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
        _GUICtrlListView_RegisterSortCallBack($ListView1)
        GUISetState(@SW_SHOW)
        _List1()
        
        While 1
        ............
        WEnd
        _GUICtrlListView_UnRegisterSortCallBack($ListView1)
EndFunc

Func _List2()
        _GUICtrlListView_DeleteAllItems($ListView2)
        $Conn = ObjCreate("ADODB.Connection")
        $Rs = ObjCreate("ADODB.Recordset")
        $Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $Path & ";Jet Oledb:Database Password=" & $PWD)
        $Rs.ActiveConnection = $Conn
        $Rs.Open("Select * From Admin")
        While (Not $Rs.eof And Not $Rs.bof)
        ............
                GUICtrlCreateListViewItem($Rs.Fields(0).Value & '|' & $Rs.Fields(1).Value & '|' & $Rs.Fields(2).Value & '|' & $Rs.Fields(3).Value & '|' & $Rs.Fields(4).Value & '|' & $Rs.Fields(5).Value, $ListView2)
                $Rs.Movenext
        WEnd
        $Rs.Close
        $Conn.Close
EndFunc

Func _List1()
        _GUICtrlListView_DeleteAllItems($ListView1)
        $Conn = ObjCreate("ADODB.Connection")
        $Rs = ObjCreate("ADODB.Recordset")
        $Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $Path & ";Jet Oledb:Database Password=" & $PWD)
        $Rs.ActiveConnection = $Conn
        $Rs.Open("Select * From User")
        While (Not $Rs.eof And Not $Rs.bof)
        ............
                GUICtrlCreateListViewItem($Rs.Fields(0).Value & '|' & $Rs.Fields(1).Value & '|' & $Rs.Fields(2).Value & '|' & $Rs.Fields(3).Value & '|' & $Rs.Fields(4).Value & '|' & $Rs.Fields(5).Value, $ListView1)
                $Rs.Movenext
        WEnd
        $Rs.Close
        $Conn.Close
EndFunc


[ 本帖最后由 eddielove 于 2009-4-19 14:26 编辑 ]
发表于 2009-4-19 10:20:08 | 显示全部楼层
请提供完整代码。。。。。
发表于 2009-4-19 11:12:25 | 显示全部楼层
试试前面加上一行 Global  $ListView2
 楼主| 发表于 2009-4-19 14:26:01 | 显示全部楼层
感谢 PCBar,问题已解决!谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-10 08:12 , Processed in 0.070585 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表