mayssa_kh3
Messages postés28Date d'inscriptionjeudi 20 avril 2006StatutMembreDernière intervention 2 juin 2006
-
15 mai 2006 à 15:53
jsem2k1
Messages postés125Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention12 août 2008
-
4 juin 2006 à 19:57
bonjour
je vais parler de mon probleme .
j'ai 6 checkbox sur une form.je veux realiser l'operation suivante:si je coche 4 parmi eux les deux autres seront desactivé automatiquement jusque la c faisable .
Mais si je decoche une parmi les quatres cochés les checkbox desactivés reviennent actif?
a propos , je travaille avec le vb.net
comment feari-je?
merci d'avance!!
adil_ista
Messages postés30Date d'inscriptionmardi 7 mars 2006StatutMembreDernière intervention25 octobre 2006 15 mai 2006 à 16:11
tu vas travailler avec un variable comme count.
tu va inialiser le count à 0,
et à chaque clik tu fais : if chekbox.cheked=true then
coun+=1
else
coun-=1
endif
essayer avec ca je sais que c'est pas juste mais c'est une iddé ,essayer à la développer.
NHenry
Messages postés15102Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mars 2024159 15 mai 2006 à 16:17
Bonjour
Sur chaque evenement lorsque tu coche ou décoche une checkbox :
RoutineTestCheckBox()
private sub RoutineTestCheckBox()
dim i as integer=0
if CheckBox1.Cheched then i+=1
if CheckBox2.Cheched then i+=1
...
if CheckBoxn.Cheched then i+=1
if i=4 then
if CheckBox1.Checked=false then CheckedBox1.Enabled=false
...
Else
CheckBox1.Enabled=true
End if
End Sub
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
adil_ista
Messages postés30Date d'inscriptionmardi 7 mars 2006StatutMembreDernière intervention25 octobre 2006 15 mai 2006 à 16:17
tu vas travailler avec un variable comme count.
tu va inialiser le count à 0,
et à chaque clik tu fais : if chekbox.cheked=true then
coun+=1
else
coun-=1
endif
essayer avec ca je sais que c'est pas juste mais c'est une iddé ,essayer à la développer.
NHenry
Messages postés15102Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mars 2024159 16 mai 2006 à 12:32
Bonjour
Si le checkbox n'est pas coché (car 4 le sont déjà) : on le bloque
C'est ce qui est demandé.
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
jsem2k1
Messages postés125Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention12 août 20081 23 mai 2006 à 02:17
Avec le DotNet il n'est plus possible de faire des tableau de controle
comme en vb6. :( Domage. Toutefois il est possible de redirigé toute (
ou presque) les Handles des évènemenr de différant controle vers une
seule procédure. Cool
Moi ce que je te suggère c'est de créé une variable nChked as integer qui va contenir le nombre de check box qui son coché
faire un tableau qui vas contenir tous les checkbox et de regiriger tout les évènement CheckedChanged ver une meme procédure
sa donne a peu près sa
Public Class Form1
Public ChkBox(5) As CheckBox
Dim nChked As Integer
Public Sub New()
' This call is required by the Windows Form Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
For i As Integer = 0 To 5
AddHandler ChkBox(i).CheckedChanged, AddressOf Me.ChkBox_ChkChange
Next
End Sub
Private Sub ChkBox_ChkChange(ByVal sender As Object, ByVal e As System.EventArgs)
If sender.ToString.EndsWith("0") Then
nChked -= 1
Else
nChked += 1
End If
If nChked = 4 Then
For i As Integer = 0 To 5 If ChkBox(i).Checked False Then ChkBox(i).Enabled False
Next
ElseIf nChked = 3 Then
For i As Integer = 0 To 5 If ChkBox(i).Enabled False Then ChkBox(i).Enabled True
Next
End If
End Sub
jsem2k1
Messages postés125Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention12 août 20081 23 mai 2006 à 18:56
Mmmmmmmmm je ne suis pas sur que sa donne le résultat esconté. Tu ferais mieux de vériffier ce qui est demander plus haut. c'est bien beau critiqué mais il faut aumoins que la critique soi constructive !!!!!!!
Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 novembre 20231 24 mai 2006 à 08:32
Ok, j'ai été un peu vite : mon histoire change aussi les chkbx active pour les rendre inactive, ce qui n'est effectivement pas une bonne chose.
N'empeche que le If Machin = True | False Then ne devrait pas être ecrit par un developeur qui à compris le principe des variables booléennes : If [Not] Machin Then !
Par ailleur cette ligne : If ChkBox(i).Enabled False Then ChkBox(i).Enabled True
Peut être remplacé par ceci :
ChkBox(i).Enabled = True
Puisque les chkbx active le resteront et les inactive deviendront active comme avec le if.
Et ceci :
For i As Integer = 0 To 5 If ChkBox(i).Checked False Then ChkBox(i).Enabled False
Next
Peut s'ecrire :
'rien du tout
Je commence à douter du resultat obtenu avec ton code [auteurdetail.aspx?ID=400996 jsem2k1]
, si nChecked = 4, il ne fait absolument rien, rend inactive des ChkBox qui le sont déjà. :-?
jsem2k1
Messages postés125Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention12 août 20081 24 mai 2006 à 09:01
Mmmmmmm le if nChecked = 4 permet de déclancher la boucle quand il y a 4 chekbox de cocher ( comme demander )
Si tu a une meilleur façon prière de me le dir.
<hr size="2" width="100%" />Et ceci :
For i As Integer = 0 To 5 If ChkBox(i).Checked False Then ChkBox(i).Enabled False
Next
Peut s'ecrire :
'rien du tout
<hr size="2" width="100%" />tu veux dir quoi par rien du tout ???? que l'on devrais en lever se bout de code ( Si tu dis oui je vais sérieusement douter de tes capasiter a lirer et interprété un code ( a moins que se soi ta capascité a comprendre les question posé))
toutefois je te donne raison sur un point ChkBox(i).Enabled = True sa sauve effectivement des cycle (un ou deux j'imagine) meme si l'ordre algorithmique du if est TRÈS FAIBLE
Mais il y a une chose qui m'intrigue.... Qu'est ce que le véritable principe des des variables booléennes ??? et pour quoi c'est plus pratique d'utiliser le Not j'aimerais bien que tu m'éclaire sur ce sujet la
[size =4]The J/size=4 [B)]
Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 novembre 20231 4 juin 2006 à 11:32
blublublublbu
Désolé, j'avais en effet une poutre dans l'oeil et j'ai vu If ChkBox(i).Enabled False Then ChkBox(i).Enabled False
D'où mon esquzasppairaçion (ch'sais pas comment ça s'ecrit alors autant l'ecrire n'importe comment)
Pour l'histoire des variable booléenne c'est qu'en faisant une comparaison (ChkBox(i).Checked False) on cré une variable en mémoire qui prendra la valeur de l'expression, donc on utilise 3 emplacements mémoire : ChkBox(i).Checked, False (qui est stocké comme une constante du code) et le resultat (ChkBox(i).Checked False) qui nécessite plusieurs opération pour le calcul. Alors qu'en utilisant "Not ChkBox(i).Checked" on utilise 2 emplacement mémoire (ChkBox(i).Checked et le resultat) et 1 operation (inversion binaire).
Et puis c'est plus dans la logique de la prog "historique".
Pour [auteurdetail.aspx?ID=395557 OneHacker]
: c'est pas parcequ'une reponse est donnée qu'une discution est close, c'est vrai que la reponse devrait être acceptée, je suis même pas sur que [auteurdetail.aspx?ID =752806 mayssa_kh3] continue à regarder notre débat, mais c'est sur le sujet donc pas de raison de ne pas l'ecrire là.
jsem2k1
Messages postés125Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention12 août 20081 4 juin 2006 à 19:57
[auteurdetail.aspx?ID=342226
]
Merci Flachy Joe pour ton explication au sujet des variables bouléenne c'est une information partique pour l'optimisation du code et surtout une information que je ne connaissai pas... Alors merci pour ton savoir...