Funktionreferenz


GUICtrlCreateListView

Beschreibung anzeigen in

Erstellt eine Liste (mit ein oder mehreren Spalten) für die GUI (ListView-Control).

GUICtrlCreateListView ( "text", left, top [, width [, height [, style = -1 [, exStyle = -1]]]] )

Parameter

text Definition der Spaltenüberschriften. Die Spalten werden durch ein Trennzeichen getrennt, welches mit Opt("GUIDataSeparatorChar") festgelegt werden kann.
left Die linke Seite des Controls. Wird -1 verwendet, dann wird left mit Hilfe von GUICoordMode berechnet.
top Die Oberkante des Controls. Wird -1 verwendet, dann wird top mit Hilfe von GUICoordMode berechnet.
width [optional] Die Breite des Controls (voreingestellt ist die zuvor verwendete Breite).
height [optional] Die Höhe des Controls (voreingestellt ist die zuvor verwendete Höhe).
style [optional] Legt den Stil des Controls fest. Siehe Anhang GUI-Stile für Controls.
    Standard (-1) : $LVS_SHOWSELALWAYS, $LVS_SINGLESEL
    Erzwungener Stil : $LVS_REPORT
exStyle [optional] Legt den erweiterten Stil des Controls fest. Siehe Tabelle der erweiterten Stile oder Tabelle der erweiterten ListView Stile.
    Standard (-1) : $LVS_EX_FULLROWSELECT, $WS_EX_CLIENTEDGE

Rückgabewert

Erfolg: Die Identifikationsnummer (Control-ID) des neuen Controls.
Fehler: 0.

Bemerkungen

Um dem Control Listeneinträge hinzuzufügen ist GUICtrlCreateListViewItem() zu verwenden.

Das ListView wird immer so aussehen wie die "Detail"-Ansicht des Explorers (LVS_REPORT Stil wird erzwungen).
Die anfängliche Spaltenbreite kann kontrolliert werden, indem Leerzeichen in die Spaltenüberschriften eingefügt werden. Die Spaltenbreite kann durch GUICtrlCreateListViewItem() auf die Breite der Einträge erweitert werden. Bis zu etwa 25 Zeichen passen in eine Spalte. Werden die Einträge durch GUICtrlSetData() verändert, wird keine Größenanpassung vorgenommen.

Um ein ListView mit Icons, kleinen Icons oder in Listenform zu erstellen, ist nach dem Erstellen GUICtrlSetStyle() mit den Stilen $LVS_ICON, $LVS_LIST oder $LVS_SMALLICON zu verwenden.

Das Sortieren der Listeneinträge durch Klick auf die Spaltenüberschriften (wie im Explorer) ist zur Zeit noch nicht implementiert.

Um eine ganze Zeile durch einen Farbbalken auszuwählen ist der erweiterte Stil LVS_EX_FULLROWSELECT zu verwenden.

Um weitere Stile zusätzlich zum Standardstil zu benutzen, ist BitOR($GUI_SS_DEFAULT_LISTVIEW, newstyle, ... ) zu verwenden.

Um die oben angegebenen Werte verwenden zu können, muss #include <ListViewConstants.au3> in das Skript eingefügt werden.

Wird der Stil $LVS_EX_CHECKBOXES zum Listview hinzugefügt, wird die Umrahmung entfernt. Gibt man den Stil $WS_EX_CLIENTEDGE zusätzlich an, wird der Rahmen wieder angezeigt.

Bei exStyle sollten keine $LVS_EX-Stile angegeben werden, da diese teilweise den identischen Wert wie $WS_EX-Stile haben.
z. B.
$WS_EX_ACCEPTFILES = $LVS_EX_HEADERDRAGDROP
$WS_EX_CONTEXTHELP = $LVS_EX_INFOTIP
$WS_EX_DLGMODALFRAME = $LVS_EX_GRIDLINES
$WS_EX_TOPMOST = $LVS_EX_TRACKSELECT
$WS_EX_TRANSPARENT = $LVS_EX_FULLROWSELECT
$WS_EX_WINDOWEDGE = $LVS_EX_FLATSB
Somit ergibt sich:
$WS_EX-Stile mit GUICtrlCreateListView angeben
$LVS_EX-Stile mit _GUICtrlListView_SetExtendedListViewStyle angeben

Das spezielle Flag $GUI_BKCOLOR_LV_ALTERNATE kann zusammen mit dem ListView-Control dazu genutzt werden, den ListviewItems-Zeilen abwechselnd andere Hintergrundfarben zu geben.
Die ungeraden Zeilen bekommen die Farbe, welche durch GUICtrlSetBkColor() des ListView-Controls zugewiesen wird.
Die geraden Zeilen bekommen die Farbe, welche durch GUICtrlSetBkColor() des ListViewItem Controls zugewiesen wird.

Ein ListView-Control muss immer mindestens eine Spalte beinhalten.

- - - - - - - - Erklärung der Controls - - - - - - - -

Verwandte Funktionen

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

Beispiel

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

Example()

Func Example()
    GUICreate("Listview Einträge", 220, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
    GUISetBkColor(0x00E0FFFF) ; Ändert die Hintergrundfarbe

    Local $idListview = GUICtrlCreateListView("Spalte1  |Spalte2|Spalte3", 10, 10, 200, 150) ;,$LVS_SORTDESCENDING)
    Local $idButton = GUICtrlCreateButton("Wert?", 75, 170, 70, 20)
    Local $idItem1 = GUICtrlCreateListViewItem("Eintrag2|Spalte22|Spalte23", $idListview)
    Local $idItem2 = GUICtrlCreateListViewItem("Eintrag1|Spalte12|Spalte13", $idListview)
    Local $idItem3 = GUICtrlCreateListViewItem("Eintrag3|Spalte32|Spalte33", $idListview)
    GUICtrlCreateInput("", 20, 200, 150)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED) ; Erlaubt drag&drop
    GUISetState(@SW_SHOW)
    GUICtrlSetData($idItem2, "EINTRAG1")
    GUICtrlSetData($idItem3, "||SPALTE33")
    GUICtrlDelete($idItem1)

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop

            Case $idButton
                MsgBox($MB_SYSTEMMODAL, "Listview Einträge", GUICtrlRead(GUICtrlRead($idListview)), 2)

            Case $idListview
                MsgBox($MB_SYSTEMMODAL, "Listview", "angeklickt=" & GUICtrlGetState($idListview), 2)
        EndSwitch
    WEnd
EndFunc   ;==>Example