Question
Bug affichage Label
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
[code:1]
[void][Reflection.Assembly]::LoadWithPartialName(\"System.Windows.Forms\"«»)
[void][Reflection.Assembly]::LoadWithPartialName(\"System.Drawing\"«»)
$ProgressBar1 = New-Object System.Windows.Forms.ProgressBar
$label0 = new-object System.Windows.Forms.Label
$objDisplayConfig = get-wmiobject win32_displayconfiguration
$progressBar1.Location = new-object System.Drawing.Point( 15,60)
$progressBar1.Size = new-object System.Drawing.Size(220, 20)
$progressbar1.style = 'continuous'
$progressbar1.Maximum = 100
$label0.AutoSize = $true
$label0.Location = new-object System.Drawing.Point(20, 20)
$label0.Name = \"label0\"
$label0.Size = new-object System.Drawing.Size(200,20)
$label0.Text = 'Please wait ...'
$ResH = $objDisplayConfig.PelsWidth
$ResH = $ResH - 300
$objForm = new-object System.Windows.Forms.form
$objForm.ClientSize = new-object System.Drawing.Size(250, 100)
$objForm.Location = new-object System.Drawing.Point($ResH, 20)
$objForm.Controls.Add($progressBar1)
$objForm.Controls.Add($label0)
$objForm.Add_Shown({$objForm.Activate()})
# $objForm.Formborderstyle = 'None'
$objForm.startposition = 'manual'
$objForm.TopMost = 'true'
$objForm.showDialog()
$objForm.Dispose()
[/code:1]
L'exemple d'origine ne fonctionnait pas sur mon poste PS v2 fr sous XP Sp3 fr ( ni sous la console ni sous ISE).
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Ice
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 25
- Remerciements reçus 0
Y'a t'il un moyen d'utiliser la methode .showdialog et de continuer a executer le code ?
merci encore
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Oui, mais le code doit être dans un event de la form( load ou activate par exemple). Le suite du script PS appelant la form est en attente du close de la form.Y'a t'il un moyen d'utiliser la methode .showdialog et de continuer a executer le code ?
Mais dans ton cas tu recherches plutôt un splash screen.
Avec WPF c'est possible, mais il faut déployer un module du chaque poste, pas terrible.
Avec une Winform il faut porter un code C# ou utiliser Add-Type pour créer une classe dérivée de Winform. Sinon rester en mode caractère et utiliser Write-progress, mais je ne pense pas que cela te satisfasse...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Durroux
- Hors Ligne
- Nouveau membre
-
- Messages : 1
- Remerciements reçus 0
Je sais que le post date un peu, mais j'ai rencontré exactement le même problème et j'y ai planché dessus pendant quelques heures.
J'ai résolu ce problème tout simplement en ajoutant un refresh sur le Form après le Show.
[code:1]
$Form1.Show()
$Form1.Refresh()
[/code:1]
Je ne sais pas si tu avais finalement résolu ce problème, mais je pense que cette solution facilitera la vie d'autres codeurs de progress bar
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
- Messages : 968
- Remerciements reçus 0
Bonjour,
Je sais que le post date un peu, mais j'ai rencontré exactement le même problème et j'y ai planché dessus pendant quelques heures.
J'ai résolu ce problème tout simplement en ajoutant un refresh sur le Form après le Show.
[code:1]
$Form1.Show()
$Form1.Refresh()
[/code:1]
Je ne sais pas si tu avais finalement résolu ce problème, mais je pense que cette solution facilitera la vie d'autres codeurs de progress bar
Bonjour Julian,
Merci pour ton retour
@ +
Matthew
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Bug affichage Label