Bonjour à tous,
Je rencontre des problèmes avec mon formulaire sous Powershell.
Dans mon script, j'ai un bouton radio "oui", "non" et selon la réponse, je fais apparaitre une textbox. Le problème est que lorsque je saisie mes infos et que je valide mon formulaire, ma valeur dans la textbox n'est pas récupérée.
Voici une partie de mon code
Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 #fenêtre $WinCollab= New-Object System.Windows.Forms.Form $WinCollab.Text = 'UTILISATEUR' $WinCollab.AutoSize = $true #wrap to content $WinCollab.Height = 1 #Autosize agrandira la fenêtre $WinCollab.FormBorderStyle = 3 #fenêtre à taille fixe $WinCollab.StartPosition = 'CenterScreen' # Objet : Intitulé. $LibCtt = New-Object System.Windows.Forms.GroupBox # Texte affiché $LibCtt.Text = "CDI? :" #Attache le contrôle et les boutons à la fenêtre $WinCollab.controls.add($LibCtt) # Objet : Bouton radio 'Oui' $InfoCtto = New-Object System.Windows.Forms.RadioButton # Valeur de la boite de dialogue $InfoCtto.Text = "Oui" # Objet : Bouton radio 'Non' $ValCONTRATn = New-Object System.Windows.Forms.RadioButton # Bouton cochée sur 'Non' par défaut $InfoCttn.Checked = $False # Valeur de la boite de dialogue $InfoCttn.Text = "Non" #Action si la case est Non cochée $InfoCttn_CheckedChanged = { # Objet : Intitulé. $LibSORTIE = New-Object System.Windows.Forms.Label # Objet nommé $LibSORTIE.Name = "LabSortie" # Texte affiché $LibSORTIE.Text = "DATE SORTIE :" # Objet : Fenêtre de saisie $DATESORT = New-Object System.Windows.Forms.TextBox # Objet nommé $DATESORT.Name = "ValSortie" # Valeur de la boite de dialogue $DATESORT.Text = "01/02/2021" #Attache le contrôle et les boutons à la fenêtre #$WinCollab.Controls.Add($DATESORT) $LibCtt.Controls.AddRange(@($InfoCttn,$InfoCtto,$LibSORTIE,$DATESORT)) $WinCollab.Controls.AddRange(@($LibCtt)) } #Action si la case Oui est cochée $InfoCtto_CheckedChanged = { #Valeur Y lié à la position verticale $ValYLoc = $ValYLoc - 1 #$WinCollab.Controls.Add($DATESORT) #Suppression de la fenêtre Date de sortie si non nécessaire $LibCtt.Controls.RemoveByKey("LabSortie") $LibCtt.Controls.RemoveByKey("ValSortie") } #Execution du script qui masque ou non la date de sortie $InfoCtto.add_click($InfoCtto_CheckedChanged) $InfoCttn.add_click($InfoCttn_CheckedChanged) # On crée un groupe de bouton $LibCtt.Controls.AddRange(@($InfoCttn,$InfoCtto)) #Attache le contrôle et les boutons à la fenêtre $WinCollab.Controls.AddRange(@($LibCtt)) #Creation Bouton 'Valider' $BtnValider = New-Object System.Windows.Forms.Button $BtnValider.Text = 'VALIDER' $WinCollab.controls.add($BtnValider) $BtnValider.Add_Click( { New-Variable -Name selection -Value $($BtnValider.Text) -Scope Script -Force $WinCollab.Close() })
La valeur de la variable $DATESORT.Text ne me renvoie rien même si je mets un write-host ici :
Merci pour votre aide.
Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $BtnValider.Add_Click( { New-Variable -Name selection -Value $($BtnValider.Text) -Scope Script -Force write-host $DATESORT.Text $WinCollab.Close() })
Partager