Question
selection plusieurs items combobox
- flavien
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 22
- Remerciements reçus 0
il y a 8 ans 1 mois #24939
par flavien
selection plusieurs items combobox a été créé par flavien
Bonjour,
J'ai un soucis pour ajouter des items d'une combobox vers une autre combobox. Lorsque j'utilise le bouton ajouter et que j'ai selectionner plusieurs contenus da ma combobox seul le premier élement s'ajoute.
Par contre lorsque je supprime plusieurs élement via le bouton supprimer cela fonctionne.
ps: C'est le canvas sauvegarde.
[code:1]Add-Type -AssemblyName PresentationFramework, PresentationCore, WindowsBase
[xml]$XAML =@'
<Window
xmlns=\"schemas.microsoft.com/winfx/2006/xaml/presentation\"
xmlns:«»x=\"schemas.microsoft.com/winfx/2006/xaml\"
Title=\"Sauvegarde User Beta 1.0\" Height=\"500\" Width=\"700\">
<Grid Visibility=\"Visible\">
<Canvas Height=\"255\" HorizontalAlignment=\"Right\" Margin=\"0,108,159,0\" Name=\"canvas_Menu\" VerticalAlignment=\"Top\" Width=\"374\" Visibility=\"Visible\">
<Button Canvas.Left=\"62\" Canvas.Top=\"44\" Content=\"Sauvegarde\" Height=\"36\" Name=\"BTN_SAUVEGARDE_1\" Width=\"236\" />
<Button Canvas.Left=\"62\" Canvas.Top=\"100\" Content=\"Restauration\" Height=\"36\" Name=\"BTN_RESTAURATION_1\" Width=\"236\" />
<Button Canvas.Left=\"62\" Canvas.Top=\"156\" Content=\"Custom\" Height=\"36\" Name=\"BTN_CUSTOM_1\" Width=\"236\" />
<Button Canvas.Left=\"62\" Canvas.Top=\"212\" Content=\"Quitter\" Height=\"36\" Name=\"BTN_QUITTER_1\" Width=\"236\" />
<Label Canvas.Left=\"62\" Canvas.Top=\"0\" Content=\"Menu\" Height=\"37\" Name=\"LBL_MENU_1\" Width=\"236\" FontWeight=\"Bold\" FontStyle=\"Normal\" HorizontalContentAlignment=\"Center\" VerticalContentAlignment=\"Center\" FontSize=\"18\" />
</Canvas>
<Canvas Name=\"canvas_Sauvegarde\" Visibility=\"Hidden\">
<Button Canvas.Left=\"267\" Canvas.Top=\"111\" Content=\"Supprimer\" Height=\"22\" Name=\"BTN_SUPPRIMER_SAVE_1\" Width=\"96\" />
<ListBox Canvas.Left=\"387\" Canvas.Top=\"58\" Height=\"85\" Name=\"TXT_PATHASAVE_1\" Width=\"287\" />
<ListBox Canvas.Left=\"6\" Canvas.Top=\"58\" Height=\"85\" Name=\"LB_PATHASAVE_1\" Width=\"239\" />
<Label Canvas.Left=\"6\" Canvas.Top=\"32\" Content=\"Selection des dossiers\" Height=\"28\" Name=\"LBL_SELECTION1_SAVE\" Width=\"248\" />
<Button Canvas.Left=\"267\" Canvas.Top=\"69\" Content=\"Ajouter\" Height=\"22\" Name=\"BTN_AJOUTER_SAVE_1\" Width=\"96\" />
<Label Canvas.Left=\"126\" Canvas.Top=\"-4\" Content=\"SAUVEGARDE\" Height=\"40\" Name=\"LBL_SAUVEGARDE_1\" Width=\"403\" FontSize=\"22\" FontWeight=\"Bold\" HorizontalContentAlignment=\"Center\" />
<Label Canvas.Left=\"387\" Canvas.Top=\"32\" Content=\"Dossiers selectionnés\" Height=\"28\" Name=\"LBL_SELECTION2_SAVE\" Width=\"248\" />
<Label Canvas.Left=\"6\" Canvas.Top=\"160\" Content=\"Chemin sauvegarde\" Height=\"28\" Name=\"LBL_CHEMIN1_SAVE\" Width=\"248\" />
<ListBox Canvas.Left=\"9\" Canvas.Top=\"183\" Height=\"26\" Name=\"LB_PATHASAVE_3\" Width=\"558\" />
<Button Canvas.Left=\"450\" Canvas.Top=\"403\" Content=\"Precedent\" Height=\"22\" Name=\"BTN_PRECEDENT_SAVE_1\" Width=\"96\" />
<Button Canvas.Left=\"569\" Canvas.Top=\"403\" Content=\"Quitter\" Height=\"22\" Name=\"BTN_QUITTER_SAVE_1\" Width=\"96\" />
</Canvas>
</Grid>
</Window>
'@
$reader = New-Object System.Xml.XmlNodeReader $XAML
$Form = [Windows.Markup.XamlReader]::Load($reader)
#region interface page menu
$btn_quitter1 = $form.findname('BTN_QUITTER_1')
$btn_quitter1.add_click({ $Form.close() })
#endregion
#region interface page sauvegarde
$btn_supprimer1 = $Form.FindName('BTN_SUPPRIMER_SAVE_1')
$btn_sauvegarde1 = $form.findname('BTN_SAUVEGARDE_1')
$Btn_precedent = $form.findname('BTN_PRECEDENT_SAVE_1')
$Btn_quitter_save = $form.findname('BTN_QUITTER_SAVE_1')
$canvas_Menu = $form.findname('canvas_Menu')
$canvas_Sauvegarde = $form.findname('canvas_Sauvegarde')
$lb_path1 = $form.findname('LB_PATHASAVE_1')
$btn_ajouter1 = $form.findname('BTN_AJOUTER_SAVE_1')
$lb_path2 = $form.findname('TXT_PATHASAVE_1')
#region test
$bureau = '%USERPROFILE%\Desktop'
$lb_path1.SelectionMode = \"Extended\"
$lb_path2.SelectionMode = \"Extended\"
[void]$lb_path1.Items.Add(\"Bureau\"«»)
[void]$lb_path1.Items.Add(\"Favoris\"«»)
[void]$lb_path1.Items.Add(\"Mes Documents\"«»)
[void]$lb_path1.Items.Add(\"Mes Images\"«»)
[void]$lb_path1.Items.Add(\"Test1\"«»)
[void]$lb_path1.Items.Add(\"Test2\"«»)
[void]$lb_path1.Items.Add(\"Test3\"«»)
#endregion
$btn_ajouter1.add_click({
$lb_path2.items.Add($lb_path1.SelectedItem)
})
$btn_supprimer1.Add_Click({
While ($lb_path2.SelectedItems.count -gt 0) {
$lb_path2.Items.RemoveAt($lb_path2.SelectedIndex)
}
})
$btn_quitter_save.add_click({ $Form.close() })
$Btn_sauvegarde1.add_Click({
$Canvas_Menu.Visibility = \"Hidden\"
$Canvas_Sauvegarde.Visibility = \"visible\"
})
$Btn_precedent.add_Click({
$Canvas_Menu.Visibility = \"visible\"
$Canvas_Sauvegarde.Visibility = \"hidden\"
})
#endregion
$Form.showdialog() | Out-Null[/code:1]
Je pense que le problème se situe dans ces lignes.
[code:1]
$lb_path1.SelectionMode = \"Extended\"
$lb_path2.SelectionMode = \"Extended\"
$btn_ajouter1.add_click({
$lb_path2.items.Add($lb_path1.SelectedItem)
})
[/code:1]
Merci.
J'ai un soucis pour ajouter des items d'une combobox vers une autre combobox. Lorsque j'utilise le bouton ajouter et que j'ai selectionner plusieurs contenus da ma combobox seul le premier élement s'ajoute.
Par contre lorsque je supprime plusieurs élement via le bouton supprimer cela fonctionne.
ps: C'est le canvas sauvegarde.
[code:1]Add-Type -AssemblyName PresentationFramework, PresentationCore, WindowsBase
[xml]$XAML =@'
<Window
xmlns=\"schemas.microsoft.com/winfx/2006/xaml/presentation\"
xmlns:«»x=\"schemas.microsoft.com/winfx/2006/xaml\"
Title=\"Sauvegarde User Beta 1.0\" Height=\"500\" Width=\"700\">
<Grid Visibility=\"Visible\">
<Canvas Height=\"255\" HorizontalAlignment=\"Right\" Margin=\"0,108,159,0\" Name=\"canvas_Menu\" VerticalAlignment=\"Top\" Width=\"374\" Visibility=\"Visible\">
<Button Canvas.Left=\"62\" Canvas.Top=\"44\" Content=\"Sauvegarde\" Height=\"36\" Name=\"BTN_SAUVEGARDE_1\" Width=\"236\" />
<Button Canvas.Left=\"62\" Canvas.Top=\"100\" Content=\"Restauration\" Height=\"36\" Name=\"BTN_RESTAURATION_1\" Width=\"236\" />
<Button Canvas.Left=\"62\" Canvas.Top=\"156\" Content=\"Custom\" Height=\"36\" Name=\"BTN_CUSTOM_1\" Width=\"236\" />
<Button Canvas.Left=\"62\" Canvas.Top=\"212\" Content=\"Quitter\" Height=\"36\" Name=\"BTN_QUITTER_1\" Width=\"236\" />
<Label Canvas.Left=\"62\" Canvas.Top=\"0\" Content=\"Menu\" Height=\"37\" Name=\"LBL_MENU_1\" Width=\"236\" FontWeight=\"Bold\" FontStyle=\"Normal\" HorizontalContentAlignment=\"Center\" VerticalContentAlignment=\"Center\" FontSize=\"18\" />
</Canvas>
<Canvas Name=\"canvas_Sauvegarde\" Visibility=\"Hidden\">
<Button Canvas.Left=\"267\" Canvas.Top=\"111\" Content=\"Supprimer\" Height=\"22\" Name=\"BTN_SUPPRIMER_SAVE_1\" Width=\"96\" />
<ListBox Canvas.Left=\"387\" Canvas.Top=\"58\" Height=\"85\" Name=\"TXT_PATHASAVE_1\" Width=\"287\" />
<ListBox Canvas.Left=\"6\" Canvas.Top=\"58\" Height=\"85\" Name=\"LB_PATHASAVE_1\" Width=\"239\" />
<Label Canvas.Left=\"6\" Canvas.Top=\"32\" Content=\"Selection des dossiers\" Height=\"28\" Name=\"LBL_SELECTION1_SAVE\" Width=\"248\" />
<Button Canvas.Left=\"267\" Canvas.Top=\"69\" Content=\"Ajouter\" Height=\"22\" Name=\"BTN_AJOUTER_SAVE_1\" Width=\"96\" />
<Label Canvas.Left=\"126\" Canvas.Top=\"-4\" Content=\"SAUVEGARDE\" Height=\"40\" Name=\"LBL_SAUVEGARDE_1\" Width=\"403\" FontSize=\"22\" FontWeight=\"Bold\" HorizontalContentAlignment=\"Center\" />
<Label Canvas.Left=\"387\" Canvas.Top=\"32\" Content=\"Dossiers selectionnés\" Height=\"28\" Name=\"LBL_SELECTION2_SAVE\" Width=\"248\" />
<Label Canvas.Left=\"6\" Canvas.Top=\"160\" Content=\"Chemin sauvegarde\" Height=\"28\" Name=\"LBL_CHEMIN1_SAVE\" Width=\"248\" />
<ListBox Canvas.Left=\"9\" Canvas.Top=\"183\" Height=\"26\" Name=\"LB_PATHASAVE_3\" Width=\"558\" />
<Button Canvas.Left=\"450\" Canvas.Top=\"403\" Content=\"Precedent\" Height=\"22\" Name=\"BTN_PRECEDENT_SAVE_1\" Width=\"96\" />
<Button Canvas.Left=\"569\" Canvas.Top=\"403\" Content=\"Quitter\" Height=\"22\" Name=\"BTN_QUITTER_SAVE_1\" Width=\"96\" />
</Canvas>
</Grid>
</Window>
'@
$reader = New-Object System.Xml.XmlNodeReader $XAML
$Form = [Windows.Markup.XamlReader]::Load($reader)
#region interface page menu
$btn_quitter1 = $form.findname('BTN_QUITTER_1')
$btn_quitter1.add_click({ $Form.close() })
#endregion
#region interface page sauvegarde
$btn_supprimer1 = $Form.FindName('BTN_SUPPRIMER_SAVE_1')
$btn_sauvegarde1 = $form.findname('BTN_SAUVEGARDE_1')
$Btn_precedent = $form.findname('BTN_PRECEDENT_SAVE_1')
$Btn_quitter_save = $form.findname('BTN_QUITTER_SAVE_1')
$canvas_Menu = $form.findname('canvas_Menu')
$canvas_Sauvegarde = $form.findname('canvas_Sauvegarde')
$lb_path1 = $form.findname('LB_PATHASAVE_1')
$btn_ajouter1 = $form.findname('BTN_AJOUTER_SAVE_1')
$lb_path2 = $form.findname('TXT_PATHASAVE_1')
#region test
$bureau = '%USERPROFILE%\Desktop'
$lb_path1.SelectionMode = \"Extended\"
$lb_path2.SelectionMode = \"Extended\"
[void]$lb_path1.Items.Add(\"Bureau\"«»)
[void]$lb_path1.Items.Add(\"Favoris\"«»)
[void]$lb_path1.Items.Add(\"Mes Documents\"«»)
[void]$lb_path1.Items.Add(\"Mes Images\"«»)
[void]$lb_path1.Items.Add(\"Test1\"«»)
[void]$lb_path1.Items.Add(\"Test2\"«»)
[void]$lb_path1.Items.Add(\"Test3\"«»)
#endregion
$btn_ajouter1.add_click({
$lb_path2.items.Add($lb_path1.SelectedItem)
})
$btn_supprimer1.Add_Click({
While ($lb_path2.SelectedItems.count -gt 0) {
$lb_path2.Items.RemoveAt($lb_path2.SelectedIndex)
}
})
$btn_quitter_save.add_click({ $Form.close() })
$Btn_sauvegarde1.add_Click({
$Canvas_Menu.Visibility = \"Hidden\"
$Canvas_Sauvegarde.Visibility = \"visible\"
})
$Btn_precedent.add_Click({
$Canvas_Menu.Visibility = \"visible\"
$Canvas_Sauvegarde.Visibility = \"hidden\"
})
#endregion
$Form.showdialog() | Out-Null[/code:1]
Je pense que le problème se situe dans ces lignes.
[code:1]
$lb_path1.SelectionMode = \"Extended\"
$lb_path2.SelectionMode = \"Extended\"
$btn_ajouter1.add_click({
$lb_path2.items.Add($lb_path1.SelectedItem)
})
[/code:1]
Merci.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 8 ans 1 mois #24944
par Philippe
Réponse de Philippe sur le sujet Re:selection plusieurs items combobox
salut flav631
il te faut utilisé SelectedItems avec le S à la fin dans une boucle :
[code:1]
$btn_ajouter1.add_click({
$lb_path1.SelectedItems | foreach {
$lb_path2.items.Add($_)
}
})[/code:1]
pour la multi selection tu peut aussi utlisé SelectionMode=\"Multiple\" comme ceci :
[code:1]<ListBox Canvas.Left=\"6\" Canvas.Top=\"58\" Height=\"85\" Name=\"LB_PATHASAVE_1\" Width=\"239\" SelectionMode=\"Multiple\" />[/code:1]
du coup tu n'a plus besoin de $lb_path1.SelectionMode = \"Extended\"
et la multi-select ce fait sans utilisé le clavier, c'est plus pratique !
il te faut utilisé SelectedItems avec le S à la fin dans une boucle :
[code:1]
$btn_ajouter1.add_click({
$lb_path1.SelectedItems | foreach {
$lb_path2.items.Add($_)
}
})[/code:1]
pour la multi selection tu peut aussi utlisé SelectionMode=\"Multiple\" comme ceci :
[code:1]<ListBox Canvas.Left=\"6\" Canvas.Top=\"58\" Height=\"85\" Name=\"LB_PATHASAVE_1\" Width=\"239\" SelectionMode=\"Multiple\" />[/code:1]
du coup tu n'a plus besoin de $lb_path1.SelectionMode = \"Extended\"
et la multi-select ce fait sans utilisé le clavier, c'est plus pratique !
Connexion ou Créer un compte pour participer à la conversation.
- flavien
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 22
- Remerciements reçus 0
il y a 8 ans 1 mois #24946
par flavien
Réponse de flavien sur le sujet Re:selection plusieurs items combobox
Merci 6ratgus pour ton aide!
Autre petite question, j'aimerais améliorer la combobox pour qu'elle ne me propose plus de doublon si j'ajoute deux fois la même chose.
Autre petite question, j'aimerais améliorer la combobox pour qu'elle ne me propose plus de doublon si j'ajoute deux fois la même chose.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 8 ans 1 mois #24949
par Philippe
Réponse de Philippe sur le sujet Re:selection plusieurs items combobox
flav631 écrit:
la combobox te donne ce que tu lui a mis dedans
avant de mettre les éléments dans la combobox, tu pourrai vérifier qu'il soit pas déjà présent dans la fonction d'ajout \"$btn_ajouter1.add_click\"
avec \"if notcontains\" :
[code:1]$btn_ajouter1.add_click({
$lb_path1.SelectedItems | foreach {
if ($lb_path2.items -notcontains $_) {
$lb_path2.items.Add($_)
}
}
})
[/code:1]
ta demande à la récupération de la liste peut ce faire avec un select -unique :
n'existe pas a venir posé tes questions si tu comprend pas quelque chose
a bientôt et bon codage pour ton script
tu plusieurs solution suivant le type d'objetAutre petite question, j'aimerais améliorer la combobox pour qu'elle ne me propose plus de doublon si j'ajoute deux fois la même chose.
la combobox te donne ce que tu lui a mis dedans
avant de mettre les éléments dans la combobox, tu pourrai vérifier qu'il soit pas déjà présent dans la fonction d'ajout \"$btn_ajouter1.add_click\"
avec \"if notcontains\" :
[code:1]$btn_ajouter1.add_click({
$lb_path1.SelectedItems | foreach {
if ($lb_path2.items -notcontains $_) {
$lb_path2.items.Add($_)
}
}
})
[/code:1]
ta demande à la récupération de la liste peut ce faire avec un select -unique :
$lb_path2.items | select -Unique
n'existe pas a venir posé tes questions si tu comprend pas quelque chose
a bientôt et bon codage pour ton script
Connexion ou Créer un compte pour participer à la conversation.
- flavien
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 22
- Remerciements reçus 0
il y a 8 ans 1 mois #24956
par flavien
Réponse de flavien sur le sujet Re:selection plusieurs items combobox
Merci pour tes réponses et tes explications. J'ai pu bien avancer. Par contre j'ai un soucis pour attribuer une variable à un item de ma combobox (exemple chemin de l'élement à sauvegarder).
Je ne vois pas trop comment faire. Dois-je faire une collection pour ma combobox et faire un filtre pour afficher la donnée que je désire dans la combobox et utilisé ma variable par la suite (entre autre pour la copie)?
Je ne vois pas trop comment faire. Dois-je faire une collection pour ma combobox et faire un filtre pour afficher la donnée que je désire dans la combobox et utilisé ma variable par la suite (entre autre pour la copie)?
Connexion ou Créer un compte pour participer à la conversation.
- flavien
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 22
- Remerciements reçus 0
il y a 8 ans 1 mois #24957
par flavien
Réponse de flavien sur le sujet Re:selection plusieurs items combobox
J'ai trouver une solution, certainement pas la mieux.
[code:1]
$bureau = '%USERPROFILE%\Desktop'
$vtab1= [string]'Bureau', $bureau
[void]$lb_path1.Items.Add($vtab1[0])
[/code:1]
Il me reste donc à utiliser une fonction if pour la copie et je pense que ça fonctionnera.
[code:1]
$bureau = '%USERPROFILE%\Desktop'
$vtab1= [string]'Bureau', $bureau
[void]$lb_path1.Items.Add($vtab1[0])
[/code:1]
Il me reste donc à utiliser une fonction if pour la copie et je pense que ça fonctionnera.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.052 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- selection plusieurs items combobox