Question Progressbar avec label

Plus d'informations
il y a 14 ans 9 mois #9694 par LOPES
Progressbar avec label a été créé par LOPES
Bonjour,

Je voudrais faire une progressbar pour suivre l'execution de mon script avec un label qui indique l'action en cours d'execution. Quand j'execute le script via PowerGui script editor, ça fonctionne, j'ai bien dans le label le défilement des commandes en cours. Par contre, dès que j'execute le script via une fenêtre externe Powershell, le label reste blanc :S . La barre de progression, elle, fonctionne dans les 2 cas. Merci de votre aide. Voici le script en question:

# Chargement des assemblies externes
[void][Reflection.Assembly]::LoadWithPartialName(\"System.Windows.Forms\")
[void][Reflection.Assembly]::LoadWithPartialName(\"System.Drawing\")

$components = new-object System.ComponentModel.Container
$timer1 = new-object System.Windows.Forms.Timer($components)
$progressBar1 = new-object System.Windows.Forms.ProgressBar
#
# timer1
#
$timer1.Enabled = $true
$progressbar1.value=0
$progressbar1.Minimum=0
$progressbar1.Maximum=100
$progressbar1.MarqueeAnimationSpeed=1

function OnTick_timer1($Sender,$e){

$timer1.Enabled = $false

}
$timer1.Add_Tick( { OnTick_timer1 $timer1 $EventArgs} )
#
# label1
#
$label1 = new-object System.Windows.Forms.Label
$label1.Location = new-object System.Drawing.Point(70, 70)
$label1.Size = new-object System.Drawing.Size(139,13)
$label1.text = \"Login Script\"
$label1.ForeColor = \"blue\"

#
# progressBar1
#
$progressBar1.Location = new-object System.Drawing.Point(58, 107)
$progressBar1.Name = \"progressBar1\"
$progressBar1.Size = new-object System.Drawing.Size(164, 23)
$progressBar1.Style =[System.Windows.Forms.ProgressBarStyle]::Continuous
$progressBar1.TabIndex = 1
#
$Form1 = new-object System.Windows.Forms.form
$Form1
$Form1.Controls.Add($label1)
$Form1.ClientSize = new-object System.Drawing.Size(284, 264)
$Form1.Controls.Add($progressBar1)
$Form1.Name = \"FrmTest15ProgressBarTimer\"
$Form1.ControlBox=0


$Form1.Text = \"Login Script\"
function OnFormClosing_FrmTest15ProgressBarTimer($Sender,$e){
# $this est égal au paramètre sender (object)
# $_ est égal au paramètre e (eventarg)

# Déterminer la raison de la fermeture :
# if (($_).CloseReason -eq [System.Windows.Forms.CloseReason]::UserClosing)

#Autorise la fermeture
($_).Cancel= $False
}

$Form1.Add_FormClosing( { OnFormClosing_FrmTest15ProgressBarTimer $Form1 $EventArgs} )
$Sb={

$Col=gcm w*
$progressbar1.Maximum=$Col.Count
$Col|% {$progressbar1.value++;$label1.text = $_.name;start-sleep -m 20}
$Form1.Close()
}

$Form1.Add_Shown({$Form1.Activate();&$Sb})
$form1.startposition='centerscreen'
$Form1.ShowDialog()
#Libération des ressources
$Form1.Dispose()

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

Plus d'informations
il y a 14 ans 9 mois #9695 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Progressbar avec label
Bonjour,

Sans reprendre en détails ton code et pour répondre directement à ta question : il faut que tu rafraichisse (\"redessine\") ta 'Form', à chaque fois que tu as mis à jour ton 'Label' : $Form1.Refresh()

[code:1]$Col|% {$progressbar1.value++;$label1.text = $_.name;$Form1.Refresh();start-sleep -m 20}[/code:1]

Bon courage et @+

Matthew<br><br>Message édité par: Matthew BETTON, à: 25/05/11 19:04

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

Plus d'informations
il y a 14 ans 9 mois #9697 par LOPES
Réponse de LOPES sur le sujet Re:Progressbar avec label
Super merci, ça fonctionne. C'était vraiment tout bête mais je suis débutante :blush: .

Merci encore

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

Plus d'informations
il y a 14 ans 9 mois #9698 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Progressbar avec label
De rien, ce fut un plaisir ;)

You are welcome :)

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

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