函数参考

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 更新数据时并不会自动调整项目大小.

To create a ListView with Icon-, SmallIcon- or List-style just use after creation:
GUICtrlSetStyle with the styles $LVS_ICON, $LVS_LIST or $LVS_SMALLICON.

Sorting the list by clicking the column name (as in Explorer) is not currently implemented.

To have the entire line visually selected use the extended style LVS_EX_FULLROWSELECT.

To combine styles with the default style use BitOr($GUI_SS_DEFAULT_LISTVIEW, newstyle,...).

To use the values specified above you must #include <ListViewConstants.au3> in your script.

The special flag $GUI_BKCOLOR_LV_ALTERNATE can be used with Listview control to give alternate background of the ListviewItems lines.
The odd lines will get the color set by GUICtrlSetBkColor of the Listview control.
The even lines will get the color set by GUICtrlSetBkColor of the ListviewItem control.

 

相关

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

 

示例/演示


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

Opt('MustDeclareVars', 1)

Example()

Func Example()
    Local $listview, $button, $item1, $item2, $item3, $input1, $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)
    $input1 = 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