[R]Retrouver l'affichage vierge d'une ComboBox
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R]Retrouver l'affichage vierge d'une ComboBox
Bonjour,
Je ne parviens pas trouver, parmi toutes les fonctions concernant les ComboBox, celle qui permettrait d'effacer la dernière valeur choisie pour afficher une ComboBox vierge, sans, bien sûr, supprimer l'item de la liste déroulante. Existe-t-elle ?
Je vous remercie.
Je ne parviens pas trouver, parmi toutes les fonctions concernant les ComboBox, celle qui permettrait d'effacer la dernière valeur choisie pour afficher une ComboBox vierge, sans, bien sûr, supprimer l'item de la liste déroulante. Existe-t-elle ?
Je vous remercie.
Modifié en dernier par GMH le lun. 12 févr. 2018 09:10, modifié 1 fois.
- walkson
- Modérateur
- Messages : 1037
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: [..]Retrouver l'affichage vierge d'une ComboBox
Bonjour,
Le plus simplement du monde
Le plus simplement du monde

#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 615, 438, 192, 124)
Global $Combo1 = GUICtrlCreateCombo("", 96, 16, 257, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, " |aa|bb|cc"," ")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Combo1
MsgBox(0,"",GUICtrlRead($Combo1))
GUICtrlSetData($Combo1," ")
EndSwitch
WEnd
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 615, 438, 192, 124)
Global $Combo1 = GUICtrlCreateCombo("", 96, 16, 257, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, " |aa|bb|cc"," ")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Combo1
MsgBox(0,"",GUICtrlRead($Combo1))
GUICtrlSetData($Combo1," ")
EndSwitch
WEnd
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: [..]Retrouver l'affichage vierge d'une ComboBox
Bonsoir,
Merci pour votre réponse.
Je vois que je n'obtenais pas satisfaction parce que je n'incluais pas l'item vide dans ma liste déroulante, comme vous l'avez fait.
Curieusement, la ComboBox ne se vide pas lors de sa première utilisation . La valeur choisie reste affichée. Aux choix suivants, la ComboBox se vide bien.
Je construis ma ComboBox comme ceci :
Voyez-vous l'origine du problème ?
Merci pour votre réponse.
Je vois que je n'obtenais pas satisfaction parce que je n'incluais pas l'item vide dans ma liste déroulante, comme vous l'avez fait.
Curieusement, la ComboBox ne se vide pas lors de sa première utilisation . La valeur choisie reste affichée. Aux choix suivants, la ComboBox se vide bien.
Je construis ma ComboBox comme ceci :
Code : Tout sélectionner
Global $comboE = GUICtrlCreateCombo("", 580, 770, 250, 20)
GUICtrlSetData($comboE, " |"," ")
For $i=0 To Ubound($motsE)-1
GUICtrlSetData($comboE,$motsE[$i] & "|")
Next
Re: [..]Retrouver l'affichage vierge d'une ComboBox
Ca se passe mieux avec la fonction _GUICtrlComboBox_InsertString : La ComboBox se vide dès le premier clic. Mais ma liste déroulante compte plusieurs items vides plutôt qu'un.
Code : Tout sélectionner
Global $comboE = GUICtrlCreateCombo("", 580, 770, 250, 20)
GUICtrlSetData($comboE, " |"," ")
For $i=0 To Ubound($motsE)-1
_GUICtrlComboBox_InsertString($comboE,$motsE[$i])
Next
- walkson
- Modérateur
- Messages : 1037
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: [..]Retrouver l'affichage vierge d'une ComboBox
ou bien comme ceci
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: [..]Retrouver l'affichage vierge d'une ComboBox
Ce qui semble marcher le mieux est :
Il me reste toutefois 4 items vides en tête de la liste déroulante au lieu d'une seule.
Si je code simplement Local $item plutôt que Local $item = " |" , je n'ai que 2 items vides, mais au premier clic sur la liste déroulante, la ComboBox ne se vide pas. Aux clics suivants, elle se vide.
Code : Tout sélectionner
Local $item = " |"
For $i=0 To Ubound($motsE)-1
$item &= $motsE[$i] & "|"
Next
GUICtrlSetData($comboE, $item," ")
Si je code simplement Local $item plutôt que Local $item = " |" , je n'ai que 2 items vides, mais au premier clic sur la liste déroulante, la ComboBox ne se vide pas. Aux clics suivants, elle se vide.
- walkson
- Modérateur
- Messages : 1037
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: [..]Retrouver l'affichage vierge d'une ComboBox
On dirait que les combos vous font la misère
Moi, avec ce code, je n'ai pas de problème
RMQ: j'ai mis l'espace à la fin car $item se termine par "|"

Moi, avec ce code, je n'ai pas de problème

#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 615, 438, 192, 124)
Global $Combo1 = GUICtrlCreateCombo("", 96, 16, 257, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
Local $motsE[7]= [4,5,6,7,8,9,10]
Local $item
For $i=0 To Ubound($motsE)-1
$item &= $motsE[$i] & "|"
Next
GUICtrlSetData($Combo1, $item & " "," ")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Combo1
MsgBox(0,"",GUICtrlRead($Combo1))
GUICtrlSetData($Combo1," ")
EndSwitch
WEnd
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 615, 438, 192, 124)
Global $Combo1 = GUICtrlCreateCombo("", 96, 16, 257, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
Local $motsE[7]= [4,5,6,7,8,9,10]
Local $item
For $i=0 To Ubound($motsE)-1
$item &= $motsE[$i] & "|"
Next
GUICtrlSetData($Combo1, $item & " "," ")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Combo1
MsgBox(0,"",GUICtrlRead($Combo1))
GUICtrlSetData($Combo1," ")
EndSwitch
WEnd
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: [R]Retrouver l'affichage vierge d'une ComboBox
Bonjour walkson et merci encore,
Votre code fonctionne très bien en effet. Je l'ai testé dans mon programme, le ComboBox se vide dès le premier clic sur un item. Il restait le souci des items vides (deux) dans la liste déroulante. Après tâtonnements, j'ai fait partir la boucle de construction de la liste à 2 plutôt qu'à 0. Et maintenant je n'ai plus d'items vides. Mon problème semble résolu :
Grand merci pour votre temps et votre patience.
Votre code fonctionne très bien en effet. Je l'ai testé dans mon programme, le ComboBox se vide dès le premier clic sur un item. Il restait le souci des items vides (deux) dans la liste déroulante. Après tâtonnements, j'ai fait partir la boucle de construction de la liste à 2 plutôt qu'à 0. Et maintenant je n'ai plus d'items vides. Mon problème semble résolu :
Code : Tout sélectionner
Global $comboE = GUICtrlCreateCombo("", 580, 770, 250, 20, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
Local $item
For $i=2 To Ubound($motsE)-1
$item &= $motsE[$i] & "|"
Next
GUICtrlSetData($comboE, $item & " "," ")