函数参考


GUICtrlCreateListView

在GUI上创建一个 ListView 控件.

GUICtrlCreateListView ( "文本", 左侧, 顶部 [, 宽度 [, 高度 [, 样式 [, 扩展样式]]]] )

参数

文本 定义栏目(列)头. 每个项目可由 Opt("GUIDataSeparatorChar") 定义的值分开.
左侧 控件左侧的位置.若此值为 -1 则根据 GUICoordMode 的设置来计算左侧位置.
顶部 控件上方的位置.若此值为 -1 则根据 GUICoordMode 的设置来计算上方位置.
宽度 [可选参数] 控件的宽度(默认值为上次使用的宽度).
高度 [可选参数] 控件的高度(默认值为上次使用的高度).
样式 [可选参数] 指定控件的样式. 请查看附录中关于 GUI 控件样式附录 的说明.

默认值(-1):$LVS_SHOWSELALWAYS, $LVS_SINGLESEL
强制样式: $LVS_REPORT
扩展样式 [可选参数] 指定控件的扩展样式.请查看附录的 扩展样式表 或者 ListView 扩展样式表.

返回值

成功: 返回新控件的控件标识符(控件ID).
失败: 返回值为 0.

注意/说明

若要添加项目到 ListView 控件请使用 GUICtrlCreateListViewItem 函数.

ListView 默认总是以"详细信息"视图显示 (这是因为 LVS_REPORT 样式是强制性的).
若要调整列的大小(宽度)则可在列头中补一些空格或者制表符(键盘上面的TAB).另外,列的宽度也可能会在使用 GUICtrlCreateListViewItem 后根据所添加项目的大小而扩大.每个列的宽度最多能达25个字符.在使用 GUICtrlSetData 更新数据时不会自动调整大小.

要创建带图标,小图标或列表样式的ListView,可以在创建后使用:
GUICtrlSetStyle设置$LVS_ICON, $LVS_LIST或$LVS_SMALLICON样式.

像资源管理器那样点击排序目前没有实现.

要使控件带有整行选择的效果,设置 LVS_EX_FULLROWSELECT 扩展样式.

要结合使用默认的样式,使用BitOr($GUI_SS_DEFAULT_LISTVIEW, 新样式,...).

要使用上述指定值,你必须在你的脚本里加上 #include <ListViewConstants.au3>.

特殊标志$GUI_BKCOLOR_LV_ALTERNATE可以和Listview控件一起使用代替ListviewItems的背景线.
奇数行的颜色由GUICtrlSetBkColor设置Listview控件的颜色决定.
偶数行的颜色由GUICtrlSetBkColor设置ListviewItem控件的颜色决定.

相关

GUICtrlCreateListViewItem, GUICtrlRegisterListViewSort, GUICoordMode (Option), GUICtrlSetData, GUIGetMsg, GUIDataSeparatorChar (Option)

示例/演示


#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Example()

Func Example()
    Local $listview, $button, $item1, $item2, $item3, $msg

    GUICreate("listview items", 220, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
    GUISetBkColor(0x00E0FFFF) ; will change background color

    $listview = GUICtrlCreateListView("col1  |col2|col3  ", 10, 10, 200, 150);,$LVS_SORTDESCENDING)
    $button = GUICtrlCreateButton("Value?", 75, 170, 70, 20)
    $item1 = GUICtrlCreateListViewItem("item2|col22|col23", $listview)
    $item2 = GUICtrlCreateListViewItem("item1|col12|col13", $listview)
    $item3 = GUICtrlCreateListViewItem("item3|col32|col33", $listview)
    GUICtrlCreateInput("", 20, 200, 150)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED) ; to allow drag and dropping
    GUISetState()
    GUICtrlSetData($item2, "ITEM1")
    GUICtrlSetData($item3, "||COL33")
    GUICtrlDelete($item1)

    Do
        $msg = GUIGetMsg()

        Select
            Case $msg = $button
                MsgBox(0, "listview item", GUICtrlRead(GUICtrlRead($listview)), 2)
            Case $msg = $listview
                MsgBox(0, "listview", "clicked=" & GUICtrlGetState($listview), 2)
        EndSelect
    Until $msg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example