Question
[Résolu] GUI Afficher / Masquer Bouton
- PoSH_Newbie
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 13 ans 1 mois #13918
par PoSH_Newbie
PowerShell-scripting.com = alias de SHARE-PSKnowledge
[Résolu] GUI Afficher / Masquer Bouton a été créé par PoSH_Newbie
Bonjour,
Je souhaite dans un formulaire GUI contenant 2 boutons A et B pouvoir faire une bascule d'affichage des boutons sans pour autant changer de formulaire.
- Form_A (Affiche au départ BTN_1)
- Lors du click sur BTN_1 => Masquer BTN_1 et Afficher BTN_2.
Voici ce que j'ai fait (sans résultat efficace bien sur
)
[code:1]# Formulaire GUI de test: bouton visible / invisible dans un form
## --- ETAPE PREALABLE ---
# Déclaration des Applications Graphiques
[void] [System.Reflection.Assembly]::loadwithpartialname(\"System.Drawing\"«»)
[void] [System.Reflection.Assembly]::LoadWithPartialName(\"system.windows.forms\"«»)
## --- CREATION DES FONCTIONS ---
function Compo_Form_A { # Composition du formulaire
## Gestion du positionnement dans le formulaire
$Lin1 = 10
$Col1 = 10
$Col2 = 170
## Gestion des Tailles dans le formulaire
$Larg2 = 150
$Haut1 = 25
## Les Boutons
$BTN_1 = New-Object System.Windows.Forms.Button
$BTN_1.UseVisualStyleBackColor = $True
$BTN_1.Size = New-Object System.Drawing.Size($Larg2,$Haut1)
$BTN_1.Location = New-Object System.Drawing.Size($Col1,$Lin1)
$BTN_1.Text = \"Visible\"
$BTN_1.add_Click({BTN_1_Click})
$BTN_2 = New-Object System.Windows.Forms.Button
$BTN_2.UseVisualStyleBackColor = $True
$BTN_2.Size = New-Object System.Drawing.Size($Larg2,$Haut1)
$BTN_2.Location = New-Object System.Drawing.Size($Col2,$Lin1)
$BTN_2.Text = \"INVISIBLE\"
$BTN_2.add_Click({BTN_2_Click})
## Ajout des objets au Formulaire A
$form_A.Controls.Add($BTN_1)
}
Function BTN_1_Click
{
$form_A.Controls.remove($BTN_1) # Retirer le bouton 1
$form_A.Controls.Add($BTN_2) # Ajouter le bouton 2
}
Function BTN_2_Click
{
$form_A.Controls.remove($BTN_2) # Retirer le bouton 2
$form_A.Controls.add($BTN_1) # Ajouter le bouton 1
}
## --- Formulaires ---
# Déclaration du formulaire
$form_A = New-Object System.Windows.Forms.Form
[System.Windows.Forms.Application]::EnableVisualStyles()
$Largeur = 520
$Hauteur = 230
$form_A.Size = New-Object System.Drawing.Size ($Largeur,$Hauteur)
$form_A.Text = \"TEST Bouton Visible / Invisible\"
$form_A.TopMost = $true
$form_A.KeyPreview = $true
$form_A.Add_KeyDown({if ($_.KeyCode -eq \"Escape\"«») {$form_A.Close()}})
$InitialFormWindowState = $form_A.WindowState
Compo_Form_A
$form_A.add_Shown({$form_A.Activate()})
[void]$form_A.ShowDialog()[/code:1]
ce code est le dernier test effectué, après avoir tenté le méthodes show() et hide() sur $BTN_1 et $BTN_2
J'ai beau chercher dans la bibliothèque MSDN msdn.microsoft.com/en-us/library/k50ex0x9%28VS.80%29.aspx ou dans les forums un topic de ce type, l'objet bouton semble être le seul objet que je ne puisse masquer...
Message édité par: PowerShell Newbie, à: 8/02/13 21:25<br><br>Message édité par: PowerShell Newbie, à: 13/02/13 16:06
Je souhaite dans un formulaire GUI contenant 2 boutons A et B pouvoir faire une bascule d'affichage des boutons sans pour autant changer de formulaire.
- Form_A (Affiche au départ BTN_1)
- Lors du click sur BTN_1 => Masquer BTN_1 et Afficher BTN_2.
Voici ce que j'ai fait (sans résultat efficace bien sur
[code:1]# Formulaire GUI de test: bouton visible / invisible dans un form
## --- ETAPE PREALABLE ---
# Déclaration des Applications Graphiques
[void] [System.Reflection.Assembly]::loadwithpartialname(\"System.Drawing\"«»)
[void] [System.Reflection.Assembly]::LoadWithPartialName(\"system.windows.forms\"«»)
## --- CREATION DES FONCTIONS ---
function Compo_Form_A { # Composition du formulaire
## Gestion du positionnement dans le formulaire
$Lin1 = 10
$Col1 = 10
$Col2 = 170
## Gestion des Tailles dans le formulaire
$Larg2 = 150
$Haut1 = 25
## Les Boutons
$BTN_1 = New-Object System.Windows.Forms.Button
$BTN_1.UseVisualStyleBackColor = $True
$BTN_1.Size = New-Object System.Drawing.Size($Larg2,$Haut1)
$BTN_1.Location = New-Object System.Drawing.Size($Col1,$Lin1)
$BTN_1.Text = \"Visible\"
$BTN_1.add_Click({BTN_1_Click})
$BTN_2 = New-Object System.Windows.Forms.Button
$BTN_2.UseVisualStyleBackColor = $True
$BTN_2.Size = New-Object System.Drawing.Size($Larg2,$Haut1)
$BTN_2.Location = New-Object System.Drawing.Size($Col2,$Lin1)
$BTN_2.Text = \"INVISIBLE\"
$BTN_2.add_Click({BTN_2_Click})
## Ajout des objets au Formulaire A
$form_A.Controls.Add($BTN_1)
}
Function BTN_1_Click
{
$form_A.Controls.remove($BTN_1) # Retirer le bouton 1
$form_A.Controls.Add($BTN_2) # Ajouter le bouton 2
}
Function BTN_2_Click
{
$form_A.Controls.remove($BTN_2) # Retirer le bouton 2
$form_A.Controls.add($BTN_1) # Ajouter le bouton 1
}
## --- Formulaires ---
# Déclaration du formulaire
$form_A = New-Object System.Windows.Forms.Form
[System.Windows.Forms.Application]::EnableVisualStyles()
$Largeur = 520
$Hauteur = 230
$form_A.Size = New-Object System.Drawing.Size ($Largeur,$Hauteur)
$form_A.Text = \"TEST Bouton Visible / Invisible\"
$form_A.TopMost = $true
$form_A.KeyPreview = $true
$form_A.Add_KeyDown({if ($_.KeyCode -eq \"Escape\"«») {$form_A.Close()}})
$InitialFormWindowState = $form_A.WindowState
Compo_Form_A
$form_A.add_Shown({$form_A.Activate()})
[void]$form_A.ShowDialog()[/code:1]
ce code est le dernier test effectué, après avoir tenté le méthodes show() et hide() sur $BTN_1 et $BTN_2
J'ai beau chercher dans la bibliothèque MSDN msdn.microsoft.com/en-us/library/k50ex0x9%28VS.80%29.aspx ou dans les forums un topic de ce type, l'objet bouton semble être le seul objet que je ne puisse masquer...
Message édité par: PowerShell Newbie, à: 8/02/13 21:25<br><br>Message édité par: PowerShell Newbie, à: 13/02/13 16:06
PowerShell-scripting.com = alias de SHARE-PSKnowledge
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 13 ans 1 mois #13925
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:GUI Afficher / Masquer Bouton
Salut,
tu as un pb de portée dans ton code ;
[code:1]
Function BTN_1_Click
{
Write-Warning \"`$BTN_1 is Null = $($BTN_1 -eq $null)\"
$form_A.Controls.remove($BTN_1) # Retirer le bouton 1
$form_A.Controls.Add($BTN_2) # Ajouter le bouton 2
}
[/code:1]
Ajoute un nom à tes composants et utilise la méthode Find
[code:1]
$BTN_1 = New-Object System.Windows.Forms.Button
$BTN_1.Name = \"Bouton1\"
...
$BTN_2 = New-Object System.Windows.Forms.Button
$BTN_1.Name = \"Bouton2\"
$b=$form_A.Controls.Find('Bouton2',$false)
$b[0].Text
[/code:1]
tu as un pb de portée dans ton code ;
[code:1]
Function BTN_1_Click
{
Write-Warning \"`$BTN_1 is Null = $($BTN_1 -eq $null)\"
$form_A.Controls.remove($BTN_1) # Retirer le bouton 1
$form_A.Controls.Add($BTN_2) # Ajouter le bouton 2
}
[/code:1]
Ajoute un nom à tes composants et utilise la méthode Find
[code:1]
$BTN_1 = New-Object System.Windows.Forms.Button
$BTN_1.Name = \"Bouton1\"
...
$BTN_2 = New-Object System.Windows.Forms.Button
$BTN_1.Name = \"Bouton2\"
$b=$form_A.Controls.Find('Bouton2',$false)
$b[0].Text
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- PoSH_Newbie
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 13 ans 1 mois #13954
par PoSH_Newbie
PowerShell-scripting.com = alias de SHARE-PSKnowledge
Réponse de PoSH_Newbie sur le sujet Re:GUI Afficher / Masquer Bouton
Merci laurent,
pour les \".name\", je ne comprenait pas encore quelle en était l'utilité donc je ne les mentionnait pas sur mes objets
Par contre, je ne comprend pas à quel endroit placer la partie
[code:1]
$b=$form_A.Controls.Find('Bouton2',$false)
$b[0].Text[/code:1]
et quelle en est la finalité
<br><br>Message édité par: PowerShell Newbie, à: 13/02/13 12:25
=> as tu des liens concernant cette partie ? je ne maîtrise pas encore cet aspect et voudrait approfondir le sujet.tu as un pb de portée dans ton code
pour les \".name\", je ne comprenait pas encore quelle en était l'utilité donc je ne les mentionnait pas sur mes objets
Par contre, je ne comprend pas à quel endroit placer la partie
[code:1]
$b=$form_A.Controls.Find('Bouton2',$false)
$b[0].Text[/code:1]
et quelle en est la finalité
PowerShell-scripting.com = alias de SHARE-PSKnowledge
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 13 ans 1 mois #13955
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:GUI Afficher / Masquer Bouton
PowerShell Newbie écrit:

[code:1]Get-Help Scope[/code:1]
PowerShell Newbie écrit:
PowerShell Newbie écrit:
PowerShell Newbie écrit:
Bonne pêche !
Oui, dans le magasin de canne à pêche
=> as tu des liens concernant cette partie ?tu as un pb de portée dans ton code
[code:1]Get-Help Scope[/code:1]
PowerShell Newbie écrit:
Un conseil, évite de nommer tes variables Btn_1, Btn_2 c'est illisible. Nomme les, par exemple, avec le nom de l'action Btn_Close, Btn_OpenConfigurationFile.pour les \".name\", je ne comprenait pas encore quelle en était l'utilité donc je ne les mentionnait pas sur mes objets
PowerShell Newbie écrit:
Pour ton code ACTUEL, place le dans chaque fonction devant changer l'état de ton bouton. Et ici tu pourrais également factoriser ton gestionaire d'événement ( ta fonction), car via le Sender ($this) tu connais le bouton qui a déclenché l'event ($this.Name)Par contre, je ne comprend pas à quel endroit placer la partie
[code:1]
$b=$form_A.Controls.Find('Bouton2',$false)
$b[0].Text[/code:1]
PowerShell Newbie écrit:
Là il faut demander au fabricant de la canne à pêche.
et quelle en est la finalité?
Bonne pêche !
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- PoSH_Newbie
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 13 ans 1 mois #13957
par PoSH_Newbie
PowerShell-scripting.com = alias de SHARE-PSKnowledge
Réponse de PoSH_Newbie sur le sujet Re:GUI Afficher / Masquer Bouton
MERCI (encore
)
- Pour la portée, (je ne connaissais pas le terme, mais j'utilisais effectivement la notion de [code:1]$Script:MA_VARIABLE[/code:1] dès que je faisais appel à des fonctions contenues dans mon script.
[code:1]Un conseil, évite de nommer tes variables Btn_1, Btn_2 c'est illisible. Nomme les, par exemple, avec le nom de l'action Btn_Close, Btn_OpenConfigurationFile.[/code:1]
- Là encore merci, mon réflexe après ta première réponse était de faire plutôt [code:1]$BTN_1.name = BTN_1[/code:1]
- Pour la portée, (je ne connaissais pas le terme, mais j'utilisais effectivement la notion de [code:1]$Script:MA_VARIABLE[/code:1] dès que je faisais appel à des fonctions contenues dans mon script.
[code:1]Un conseil, évite de nommer tes variables Btn_1, Btn_2 c'est illisible. Nomme les, par exemple, avec le nom de l'action Btn_Close, Btn_OpenConfigurationFile.[/code:1]
- Là encore merci, mon réflexe après ta première réponse était de faire plutôt [code:1]$BTN_1.name = BTN_1[/code:1]
PowerShell-scripting.com = alias de SHARE-PSKnowledge
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.052 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] GUI Afficher / Masquer Bouton