Question Une picturebox en font

Plus d'informations
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 :side:

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.

Plus d'informations
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.

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

Plus d'informations
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]

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

Plus d'informations
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 :laugh:

Du coup merci, tout fonctionne ! et j'ai appris des choses! :)

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

Plus d'informations
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 :pinch:

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. :sick:

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.

Plus d'informations
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 :P

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

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