Question aide Combobox

Plus d'informations
il y a 8 ans 1 mois #24934 par flavien
aide Combobox a été créé par flavien
Bonjour,

Je suis entrain de créer un petit programme afin de faire des sauvegardes. Cependant j'ai un problème avec l'utilisation d'une combobox.

J'aimerais pouvoir selectionner un ou plusieurs élements de ma premiere Combobox (LB_PATHASAVE_1) puis en cliquant sur le bouton ajouter cela me les ajouterais dans ma textbox (TXT_PATHASAVE_1) à côté.

Merci d'avance pour votre aide car la j'avoue que je sêche.

[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\" />
<TextBox 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_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'


[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({

})


$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]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 1 mois #24937 par flavien
Réponse de flavien sur le sujet Re:aide Combobox
J'ai réussi à afficher ma selection dans la textbox.
Pour cela j'ai modifier le code suivant
[code:1]$lb_path1.SelectionMode = \"Extended\"

$btn_ajouter1.add_click({
$lb_path2.text = $lb_path1.SelectedItems
})
[/code:1]

Par contre du coup j'aimerais creer une variable afin de lancer les copies des fichiers. Tel que [code:1]$bureau = '%USERPROFILE%\Desktop' [/code:1]

Il faut donc que j'utilise une fonction if suivant la selection des items afin de copier les fichiers nécessaires ou y a t'il une meilleur méthode? De plus j'aimerais qu'il lance les copies les unes après les autres afin de ne pas augmenter la durée totale de la copie ( et en y joignant un message pour me notifier a quel étape de copie il en est si c'est réalisable).

Autre question j'aimerais que le temps de la copie restant s'affiche, comme un copier collé via l'explorateur windows, j'imagine qu'il est possible de s'en servir?

J'éspère être assez clair dans ma demande car ce n'est pas facile a expliqué par écrit. Merci d'avance pour votre aide

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 1 mois #24945 par Philippe
Réponse de Philippe sur le sujet Re:aide Combobox
je t'ai répondu dans ton autre post sur la multi-sélection

je te laisse regarder la solution
et te propose que tu repose tes questions sur ton script une a une pour qu'il soit plus simple dis répondre

pour la fonction : il est toujours bien de travailler avec des fonctions surtout si une partie du code ce répète plusieurs fois

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 1 mois #24947 par flavien
Réponse de flavien sur le sujet Re:aide Combobox
Oui, éffectivement je vais avancer petit à petit. Merci pour ton aide.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 1 mois #24950 par Philippe
Réponse de Philippe sur le sujet Re:aide Combobox
flav631 écrit:

Oui, éffectivement je vais avancer petit à petit. Merci pour ton aide.

de rien
ouvre un sujet pour chaque question si possible
avec un petit script qui représente la question serai le top :) car ton script va vite grossir :evil:
et la les fonctions aide a structuré ton script !

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.051 secondes
Propulsé par Kunena