Question
Une picturebox en font
- Marc
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 90
- Remerciements reçus 0
il y a 8 ans 10 mois #23847
par Marc
Réponse de Marc sur le sujet Re:Une picturebox en font
La ça dépend du comportement que attends avec tes checkbox 
La ton bout de code n'est pas clair, on ne comprend pas ce que tu veux faire.
Dans ton cas si l'une ou l'autre des checkbox est décoché le bouton sera grisé.
Il faut que les 2 checkbox soient coché pour activer le bouton ?
La ton bout de code n'est pas clair, on ne comprend pas ce que tu veux faire.
Dans ton cas si l'une ou l'autre des checkbox est décoché le bouton sera grisé.
Il faut que les 2 checkbox soient coché pour activer le bouton ?
Connexion ou Créer un compte pour participer à la conversation.
- Riblito
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 96
- Remerciements reçus 0
il y a 8 ans 10 mois #23848
par Riblito
Réponse de Riblito sur le sujet Re:Une picturebox en font
Non, il faut au minimum 1 de coché, en gros c'est un bouton \"installer\" et les checkbox pour les logiciels à installer.
Tout fonctionne bien, sauf que si l'utilisateur coche les 2.... mais finalement il change d'avis et en décoche qu'une... le bouton se grise. Il faudrait donc qu'il se grise une fois les 2 checkbox décochées ...non pas qu'une.
Tout fonctionne bien, sauf que si l'utilisateur coche les 2.... mais finalement il change d'avis et en décoche qu'une... le bouton se grise. Il faudrait donc qu'il se grise une fois les 2 checkbox décochées ...non pas qu'une.
Connexion ou Créer un compte pour participer à la conversation.
- Marc
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 90
- Remerciements reçus 0
il y a 8 ans 10 mois #23853
par Marc
Réponse de Marc sur le sujet Re:Une picturebox en font
A ce moment c'est bien un if qu'il faut:
Par contre il faut bien envoyer les 2 argument au scriptblock.
[code:1]
$checkbox.add_click({&$CheckboxStateChange $checkbox.Checked $checkbox2.Checked})
$checkbox2.add_click({&$CheckboxStateChange $checkbox2.Checked $checkbox.Checked})
[scriptblock]$CheckboxStateChange =
{
param([bool]$CheckBoxState1,[bool]$CheckBoxState2)
if(-not$CheckBoxState1 -and -not$CheckBoxState2)
{
$bouton.Enabled = $false
}
else
{
$bouton.Enabled = $true
}
}
[/code:1]
Par contre il faut bien envoyer les 2 argument au scriptblock.
[code:1]
$checkbox.add_click({&$CheckboxStateChange $checkbox.Checked $checkbox2.Checked})
$checkbox2.add_click({&$CheckboxStateChange $checkbox2.Checked $checkbox.Checked})
[scriptblock]$CheckboxStateChange =
{
param([bool]$CheckBoxState1,[bool]$CheckBoxState2)
if(-not$CheckBoxState1 -and -not$CheckBoxState2)
{
$bouton.Enabled = $false
}
else
{
$bouton.Enabled = $true
}
}
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Riblito
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 96
- Remerciements reçus 0
il y a 8 ans 10 mois #23854
par Riblito
Réponse de Riblito sur le sujet Re:Une picturebox en font
haa, j'étais pas loin ... je mettais le if dans le $true 
Du coup merci, tout fonctionne ! et j'ai appris des choses!
Du coup merci, tout fonctionne ! et j'ai appris des choses!
Connexion ou Créer un compte pour participer à la conversation.
- Marc
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 90
- Remerciements reçus 0
il y a 8 ans 10 mois #23863
par Marc
Réponse de Marc sur le sujet Re:Une picturebox en font
Mais on remarque tout de même un soucis de taille dans ce code.
Imagine maintenant qu'il y est 30 Checkbox dans ton formulaire
Tu te retrouve avec un truc complètement crado, avec 30 arguments à passer, 30 arguments dans ton if, en fait un gros un truc dégueulasse, pas souple, et sources de bug chronophage.
Le mieux est d'aller chercher dans la bibliothèque de controls du formulaire.
Soient par type si toutes tes checkbox sont affecté à la même fonction (choisir une appli)
Soient par nom si tu en a qui sont affecté à d'autre fonctions (j'aime moins il faut nommer correctement les checkbox source de bug).
Ou mettre tes checkbox sur un panel afin de les rechercher par type dans la bibliothèque du panel (la meilleurs solution selon moi).
Et ainsi on a un truc qui marche bien, propre, et souple.
Gestion par type.
[code:1]
[scriptblock]$CheckboxStateChange =
{
if(($form.Controls|where {($_.GetType()).name -eq 'CheckBox'}|select -Property Checked).checked.contains($true))
{
$bouton.Enabled = $true
}
else
{
$bouton.Enabled = $false
}
}
$checkbox.add_click($CheckboxStateChange)
$checkbox2.add_click($CheckboxStateChange)
[/code:1]
Une version plus lisible et .NET compliant
[code:1]
if(($form.Controls|where {$_ -is [System.Windows.Forms.CheckBox]}).checked.contains($true))
[/code:1]
Message édité par: marcci, à: 30/06/17 13:07<br><br>Message édité par: marcci, à: 30/06/17 13:43
Imagine maintenant qu'il y est 30 Checkbox dans ton formulaire
Tu te retrouve avec un truc complètement crado, avec 30 arguments à passer, 30 arguments dans ton if, en fait un gros un truc dégueulasse, pas souple, et sources de bug chronophage.
Le mieux est d'aller chercher dans la bibliothèque de controls du formulaire.
Soient par type si toutes tes checkbox sont affecté à la même fonction (choisir une appli)
Soient par nom si tu en a qui sont affecté à d'autre fonctions (j'aime moins il faut nommer correctement les checkbox source de bug).
Ou mettre tes checkbox sur un panel afin de les rechercher par type dans la bibliothèque du panel (la meilleurs solution selon moi).
Et ainsi on a un truc qui marche bien, propre, et souple.
Gestion par type.
[code:1]
[scriptblock]$CheckboxStateChange =
{
if(($form.Controls|where {($_.GetType()).name -eq 'CheckBox'}|select -Property Checked).checked.contains($true))
{
$bouton.Enabled = $true
}
else
{
$bouton.Enabled = $false
}
}
$checkbox.add_click($CheckboxStateChange)
$checkbox2.add_click($CheckboxStateChange)
[/code:1]
Une version plus lisible et .NET compliant
[code:1]
if(($form.Controls|where {$_ -is [System.Windows.Forms.CheckBox]}).checked.contains($true))
[/code:1]
Message édité par: marcci, à: 30/06/17 13:07<br><br>Message édité par: marcci, à: 30/06/17 13:43
Connexion ou Créer un compte pour participer à la conversation.
- Riblito
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 96
- Remerciements reçus 0
il y a 8 ans 10 mois #23927
par Riblito
Réponse de Riblito sur le sujet Re:Une picturebox en font
désolé pour le temps de réponse.
Merci beaucoup pour les explications, ça va bien m'aider
c'ext effectivement beaucoup plus simple à lire. Je vais m'entrainer
Merci beaucoup pour les explications, ça va bien m'aider
c'ext effectivement beaucoup plus simple à lire. Je vais m'entrainer
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.040 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Une picturebox en font