Couleur sélection ListView
Posté : sam. 20 févr. 2021 18:55
Bonsoir à tous.
En manipulation de ListView il est possible, comme dans l'exemple joint d'ordonner une sélection de ligne(s) par _GUICtrlListView_SetItemSelected.
A ce stade le fond de ligne est bleu.
Il le reste aussi après un clic-droit et ouverture d'un MenuContext
Par contre l'utilisation de la fonction _GUICtrlListView_EnsureVisible provoque la disparition de cette couleur bleue pour la ou les lignes précédemment sélectionnées, même après renvoi de la commande _GUICtrlListView_SetItemSelected, et même après déselection puis resélection (comme dans cet exemple), alors qu'un clic gauche sur une ligne retrouve bien le bleu d'origine.
Le fond gris clair ne permet pas un repérage aisé dans le défilement/exploration de longues listes !
Peut-on remédier à cela et forcer la couleur d'origine à réapparaître ?
Merci pour toute info...
En manipulation de ListView il est possible, comme dans l'exemple joint d'ordonner une sélection de ligne(s) par _GUICtrlListView_SetItemSelected.
A ce stade le fond de ligne est bleu.
Il le reste aussi après un clic-droit et ouverture d'un MenuContext
Code : Tout sélectionner
#include <GuiListView.au3>
Opt("GUIOnEventMode", 1)
Global $listview
GUICreate("Test", 220, 200, -1, -1)
GUISetBkColor(0x00E0FFFF)
GUISetOnEvent(-3,"_quit")
$listview = GUICtrlCreateListView("N°|ColA|ColB", 10, 10, 200, 142,$LVS_SHOWSELALWAYS)
Local $menu = GUICtrlCreateContextMenu($listView)
Local $menuA = GUICtrlCreateMenuItem("Test", $menu)
Local $bouton = GUICtrlCreateButton("EnsureVisible ligne 5", 40, 170, 120, 20)
GUICtrlSetOnEvent($bouton,"_revoir")
For $i=1 to 20
GUICtrlCreateListViewItem($i&"|texte A" & $i & "|valeur " & $i, $listview)
Next
_GUICtrlListView_SetItemSelected($listview, 4)
GUISetState()
While 1
Sleep(1000)
WEnd
Func _revoir()
_GUICtrlListView_EnsureVisible($listView,4)
_GUICtrlListView_SetItemSelected($listview,4,False,False)
Sleep(1000)
_GUICtrlListView_SetItemSelected($listview,4,True,True)
EndFunc
Func _quit()
GUIDelete()
Exit
EndFunc
Func _menuA()
Sleep(100)
EndFunc
Le fond gris clair ne permet pas un repérage aisé dans le défilement/exploration de longues listes !
Peut-on remédier à cela et forcer la couleur d'origine à réapparaître ?
Merci pour toute info...