ken0137 发表于 2008-8-6 22:48:54

怎么样响应listview选择的行


但我选择一行时,下面就显示这行相应的数据
这个响应怎么写?
我是用Opt("GUIOnEventMode", 1) 模式的

[ 本帖最后由 ken0137 于 2008-8-7 03:17 编辑 ]

KiwiCsj 发表于 2008-8-6 23:02:45

使用事件响应模式,要在窗口完成后注册一个光标点击事件:
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN,"kc_mouseclick_f")

然后写这个   kc_mouseclick_f()Func kc_mouseclick_f()
        $pos = GUIGetCursorInfo()                        ;返回数组$pos 表示鼠标下面的控件的控件ID( 0 为没有或者无法获取)
        if $pos <> 0 then
                If ($pos == $ListView1) Then                ;假设你的表句柄是 $ListView1
                        If _GUICtrlListView_GetItemText($ListView1, _GUICtrlListView_GetNextItem($ListView1), 0) <>"" then
                                GUICtrlSetData($Input1,_GUICtrlListView_GetItemText($ListView1, _GUICtrlListView_GetNextItem($ListView1), 0))        ;设置表中选中行的第一列数据到input1
                                ;继续执行获取并写入控件
                        EndIf
                EndIf
        EndIf
EndFunc

ken0137 发表于 2008-8-7 00:56:55

好像没反应啊,我添加了上述代码,并且在Func kc_mouseclick_f()
里加了个msgbox,但是当点击listview中的一行时并没有跳出msgbox

netegg 发表于 2008-8-7 01:22:18

是个数据库?有没有界面的源码?要不无从下手

[ 本帖最后由 netegg 于 2008-8-7 01:24 编辑 ]

ken0137 发表于 2008-8-7 03:17:13

可以了,刚才位置写错了
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN,"kc_mouseclick_f")写在了
While 1
sleep(1000)
WEnd
的后面,所以不响应

sanhen 发表于 2008-8-7 08:22:29

用注册事件。比上边的方法好用。在旧版的时候是用这种方法,新版还是注册事件来得爽。

ken0137 发表于 2008-8-20 21:20:26

可惜注册事件看不懂

浪迹红客 发表于 2011-5-26 21:06:29

学习而已。。。
页: [1]
查看完整版本: 怎么样响应listview选择的行