Question Changement de fenêtre

Plus d'informations
il y a 15 ans 7 mois #7526 par crouzille
Changement de fenêtre a été créé par crouzille
Bonjour à tous.;)

Je vous expose mon problème: quand l'utilisateur lance mon programme powershell une fenetre apparait avec des informations à saisir. Une fois remplis, l'utilisateur clique sur le bouton \"commencer\" ce qui devrait fermer la fenetre et en ouvrir une autre mais cette dernière ne se ferme pas et ouvre bien l'autre.

Voila un extrait de mon code :

[code:1]
<#
Extraction Call_log

Dans ce script nous commençons à extraire les information saisie par l'utilisateur (celle-ci ayant préalablement vériafié dans le 1er script)

#>



# ====================
# Check variable
# ====================

<#
Nous avons:
-$heure_début //Heure du début de la plage horaire
-$heure_fin //Heure de fin de la plage horaire
-$date_reference // date inscrit sur le nom du call_log
-$chemin //chemin de destination où déposer les répertoires
-$date_login //date pour le script CMS
#>



#Extraction call_log correspondant
get-childitem E:\Programmes_extractions_V3 *.csv | where-object {$_.basename -eq \"calls_log.$date_reference*\"} | copy-item -destination E:\Programmes_extractions_V3\Test\Call_log.csv

#Gestion call_log de la semaine en cours
if (Get-ChildItem E:\Programmes_extractions_V3\Test\Call_log.csv)
{
}

else
{

if ((Show-MessageBox \"La demande concerne t'elle la semaine en cours?\" \"Information\" \"Question\" \"YesNo\"«») -eq \"YES\"«»)
{

copy-item E:\Programmes_extractions_V3\Call_log.csv -destination E:\Programmes_extractions_V3\Test\Call_log.csv


}
elseif ((Show-MessageBox \"Le programme ne peut récuprérer le call_log.Le programme doit fermer\" \"Information\" \"Information\" \"OK\"«») -eq \"OK\"«»)



{
$fenetre_1.Close()
}


}



$progressBar1.value = 25


#On Inclut la date souhaitée dans le script générant le login-logout

(Get-Content E:\Programmes_extractions_V3\Scripts\extraction_login.acsauto) | foreach-object {$_ -replace \"date_login\", \"$date_login\"} | set-content E:\Programmes_extractions_V3\Scripts\extraction_login.acsauto

#On extrait le login-logout via un script automatisé.

start extraction_login.acsauto

#On remet le script dans son état intial afin qu'il soit de nouveau possible de remplacer les valeurs de dates

(Get-Content E:\Programmes_extractions_V3\Scripts\extraction_login.acsauto) | foreach-object {$_ -replace \"$date_login\", \"date_login\"} | set-content E:\Programmes_extractions_V3\Scripts\extraction_login.acsauto


$progressBar1.value = 100





$fenetre_1.Close()

Extraction_2.ps1./extraction_2 correspond a l'autre fenetre génerée








[/code:1]

J'espère avoir été assez clair dans mes propos :laugh:

Merci d'avance pour votre aide :P<br><br>Message édité par: noir28, à: 3/08/10 10:13

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

Plus d'informations
il y a 15 ans 7 mois #7533 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Changement de fenêtre
Salut,
noir28 écrit:

Une fois remplis, l'utilisateur clique sur le bouton \&quot;commencer\&quot; ce qui devrait fermer la fenetre

Par quelle instruction affiches-tu la fenêtre?
noir28 écrit:

et en ouvrir une autre

Idem
noir28 écrit:

mais cette dernière ne se ferme pas et ouvre bien l'autre.

As-tu codé une imbrication d'appel ou un enchaînement d'appel ?

Tutoriels PowerShell

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

Plus d'informations
il y a 15 ans 7 mois #7540 par Richard Lazaro
Réponse de Richard Lazaro sur le sujet Re:Changement de fenêtre
Bonjour,

Ton code n'est pas du tout lisible et je n'arrive pas à voir quand la deuxième fenêtre est créé ?

Utilises tu la méthode ShowDialog à partir de la fenêtre mère ?

Bien Cordialement,
Richard Lazaro.

Think-MS : (Get-Life).Days | %{ Learn-More }

\\&quot;Problems cannot be solved by the same level of thinking that created them.\\&quot; - Albert Einstein

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

Plus d'informations
il y a 15 ans 7 mois #7542 par crouzille
Réponse de crouzille sur le sujet Re:Changement de fenêtre
pour la premiere fenetre :



[code:1]#Save the initial state of the form
$InitialFormWindowState = $Fenetre_1.WindowState
#Init the OnLoad event to correct the initial state of the form
$Fenetre_1.add_Load($OnLoadForm_StateCorrection)
#Show the Form
$Fenetre_1.ShowDialog()| Out-Null
[/code:1]

je la ferme ensuite avec fenetre.close() une fois que l'utilisateur à remplis les cases.

et ensuite j'ouvre la deuxieme fenetre en exécutant un autre script reprenant le principe du premier.



Euh désolé laurent j'ai pas compris ta question.<br><br>Message édité par: noir28, à: 4/08/10 09:39

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

Plus d'informations
il y a 15 ans 7 mois #7543 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Changement de fenêtre
noir28 écrit:

et ensuite j'ouvre la deuxieme fenetre en exécutant un autre script reprenant le principe du premier.

C'est correcte, vérifie si tu n'as pas codé l'event Closing sur la première fenêtre :
[code:1]# Appelé pour déterminer si on ferme ou pas la fenêtre
$Form1.Add_FormClosing({
#Autorise la fermeture
($_).Cancel= $true
})[/code:1]
Ici on annule la demande de fermeture, l'appel à form.close() est donc inopérant.
noir28 écrit:

Euh désolé laurent j'ai pas compris ta question

Dans ton cas tu procèdes à un enchaînement, l'imbrication se fait ainsi :
[code:1]
$Frm1.ShowDialog()

#via l'ihm
$Frm2.ShowDialog()
$Frm2.Close(); $Frm2.Dispose()

$Frm1.Close(); $Frm1.Dispose()[/code:1]

Tutoriels PowerShell

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

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