Besoin d'aide pour textbox et checkbox

chaingang Messages postés 3 Date d'inscription dimanche 16 janvier 2011 Statut Membre Dernière intervention 20 janvier 2011 - 20 janv. 2011 à 07:52
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 22 janv. 2011 à 22:54
Bonjour à tous,

Je débute dans la programmation et je rencontre une difficulté depuis plus d'une semaine, je viens ici pour trouver la solution.

Je vous explique brièvement mon programme : Donc mon programme se divise en 4 tableaux identique rempli uniquement de chiffre, lorsque je clic sur le bouton du chiffre celui ci se met en couleur pour le distinguer des autres.

Je souhaite mettre en place 4 checkbox pour sélectionner un ou plusieurs tableaux en même temps car actuellement quand je clic sur un chiffre il s'affiche sur les 4 tableaux.

Mon problème c'est que je n'arrive pas a mettre en place la commande pour ces checkbox.

Merci d'avance.

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 janv. 2011 à 09:35
Salut

Pas assez clair.

"mon programme se divise en 4 tableaux"
Ca ne veut pas dire grand chose. Qu'appelles-tu un tableau ? quel objet ?

"le bouton du chiffre"
C'est quoi ? quel objet ?

Pour prendre en compte l'état de la CheckBox associée à ton 'tableau', il faudra modifier le code qui se trouve sous ton 'bouton'. Il faut donc que ton 'bouton' sache à quel 'tableau' il appartient.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
20 janv. 2011 à 11:10
Salut

Selon tes détails
quand je clic sur un chiffre il s'affiche sur les 4 tableaux.

Est ce que tes chiffres sont des objet buttons
Si oui alors si tu cliques seulement le bouton cliqué
change sa couleur évenement click du bouton
pourquoi tous les autres meme chiffres des autres
tableaux changent de couleur ?
0
chaingang Messages postés 3 Date d'inscription dimanche 16 janvier 2011 Statut Membre Dernière intervention 20 janvier 2011
20 janv. 2011 à 18:41
Désolé pour le manque de précisions.

Donc pour représenter le tableau se sont des textbox alignées l'une en dessous de l'autre. En ce qui concerne les chiffres se sont des bouttons.

Donc lorsque je clic sur un boutton le numéro contenu dans la textbox readonly change de fond. J'ai représenté 4 ensemble de textbox identique et à l'aide d'une checkbox je souhaiterais selectionné un ou plusieurs ensembles de textbox.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
21 janv. 2011 à 15:30
Salut
Fais peut etre comme ça
Place sur ta form 4 panel
panel1,panel2,panel3,panel4
dans ces panels seront placés les labels
il y a pas de labels sur ta form
je me sers de label et pas de textebox

Public Class Form1
Dim vecttextboxespanel1(9) As System.Windows.Forms.Label
    Dim vecttextboxespanel2(9) As System.Windows.Forms.Label
    Dim vecttextboxespanel3(9) As System.Windows.Forms.Label
    Dim vecttextboxespanel4(9) As System.Windows.Forms.Label
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ArrangePanel(Panel1, vecttextboxespanel1)
        ArrangePanel(Panel2, vecttextboxespanel2)
        ArrangePanel(Panel3, vecttextboxespanel3)
        ArrangePanel(Panel4, vecttextboxespanel4)
    End Sub
Private Sub ArrangePanel(ByVal panel As Panel, ByVal vecttextboxespanel() As System.Windows.Forms.Label)
        Dim iter As Integer
        Dim N As Integer
        N = 3

        For iter = 0 To vecttextboxespanel.Length - 1
            vecttextboxespanel(iter) = New Label
            panel.Controls.Add(vecttextboxespanel(iter))
            vecttextboxespanel(iter).Text = CStr(iter)
            vecttextboxespanel(iter).Font = New Font("arial", 22, FontStyle.Bold, GraphicsUnit.Pixel)
            vecttextboxespanel(iter).AutoSize = True
            vecttextboxespanel(iter).BorderStyle = BorderStyle.Fixed3D
            vecttextboxespanel(iter).ForeColor = Color.Black
            vecttextboxespanel(iter).BringToFront()
            ' vecttextboxespanel(iter).Anchor = AnchorStyles.Bottom & AnchorStyles.Left
            ' vecttextboxespanel(iter).Anchor = AnchorStyles.None
            'place 3 nombre par rangée
            If iter Mod N = 0 Then
                vecttextboxespanel(iter).Top = 0
                vecttextboxespanel(iter).Left = 0
                If iter <> 0 Then
                    vecttextboxespanel(iter).Top = vecttextboxespanel(iter - N).Bottom + 1
                End If
            Else
                vecttextboxespanel(iter).Left = vecttextboxespanel(iter - 1).Right + 1
                vecttextboxespanel(iter).Top = vecttextboxespanel((iter \ N) * N).Top
                vecttextboxespanel(iter).Visible = True
            End If
        Next
        panel.Width = N * vecttextboxespanel(0).Width + N - 1
        panel.Height = (N + 1) * vecttextboxespanel(0).Height + N

    End Sub



le reste viendra après patience
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
22 janv. 2011 à 22:54
Salut
je ne sais pas si ça convient
j'ai fait avec dix chiffres de 0 à 9
sur ta form place
4 Panel
4 checkboxes
1 button name efface
10 button name chiffre0,chiffre1...chiffre9 etc
c'est tout
  Public Class Form2
    Dim checkboxtag() As String
    Dim vecttextboxespanel1(9) As System.Windows.Forms.Label
    Dim vecttextboxespanel2(9) As System.Windows.Forms.Label
    Dim vecttextboxespanel3(9) As System.Windows.Forms.Label
    Dim vecttextboxespanel4(9) As System.Windows.Forms.Label

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ArrangePanel(Panel1, vecttextboxespanel1)
        ArrangePanel(Panel2, vecttextboxespanel2)
        ArrangePanel(Panel3, vecttextboxespanel3)
        ArrangePanel(Panel4, vecttextboxespanel4)
        Panel1.Left = 6
        Panel1.Top = 3
        Panel2.Left = Panel1.Right + 6
        Panel2.Top = Panel1.Top
        Panel3.Left = 6
        Panel3.Top = Panel1.Bottom + 6
        Panel4.Left = Panel3.Right + 6
        Panel4.Top = Panel3.Top
        CheckBox1.Tag = 1
        CheckBox2.Tag = 2
        CheckBox3.Tag = 3
        CheckBox4.Tag = 4
        enablebuttons()
    End Sub
    Private Sub ArrangePanel(ByVal panel As Panel, ByVal vecttextboxespanel() As System.Windows.Forms.Label)
        Dim iter As Integer
        Dim N As Integer
        N = 3

        For iter = 0 To vecttextboxespanel.Length - 1
            vecttextboxespanel(iter) = New Label
            panel.Controls.Add(vecttextboxespanel(iter))
            vecttextboxespanel(iter).Text = CStr(iter)
            vecttextboxespanel(iter).Font = New Font("arial", 22, FontStyle.Bold, GraphicsUnit.Pixel)
            vecttextboxespanel(iter).AutoSize = True
            vecttextboxespanel(iter).BorderStyle = BorderStyle.Fixed3D
            vecttextboxespanel(iter).BackColor = Color.Beige
            vecttextboxespanel(iter).ForeColor = Color.Black
            vecttextboxespanel(iter).BringToFront()
            ' vecttextboxespanel(iter).Anchor = AnchorStyles.Bottom & AnchorStyles.Left
            ' vecttextboxespanel(iter).Anchor = AnchorStyles.None
            'place 3 nombre par rangée
            If iter Mod N = 0 Then
                vecttextboxespanel(iter).Top = 0
                vecttextboxespanel(iter).Left = 0
                If iter <> 0 Then
                    vecttextboxespanel(iter).Top = vecttextboxespanel(iter - N).Bottom + 1
                End If
            Else
                vecttextboxespanel(iter).Left = vecttextboxespanel(iter - 1).Right + 1
                vecttextboxespanel(iter).Top = vecttextboxespanel((iter \ N) * N).Top
                vecttextboxespanel(iter).Visible = True
            End If
        Next
        panel.Width = N * vecttextboxespanel(0).Width + N - 1
        panel.Height = (N + 1) * vecttextboxespanel(0).Height + N

    End Sub

    
    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, CheckBox3.CheckedChanged, CheckBox4.CheckedChanged

        enablebuttons()

    End Sub
    Private Function enablebuttons() As Boolean
        'verifie si au moin un checkbox est marqué si aucun tous les buttons chiffres sont grisés enable = false
        Dim atleastone As Boolean
        Dim index As Integer
        index = 0
        atleastone = False
        For Each c As Control In Me.Controls
            If TypeOf c Is CheckBox Then
                If DirectCast(c, CheckBox).Checked = True Then
                    atleastone = True
                    ReDim Preserve checkboxtag(index)
                    checkboxtag(index) = DirectCast(c, CheckBox).Tag
                    index += 1
                End If
            End If
        Next
        For Each c As Control In Me.Controls
            If TypeOf c Is Button Then
                If atleastone Then
                    DirectCast(c, Button).Enabled = True
                Else
                    If DirectCast(c, Button).Name = "efface" Then
                        DirectCast(c, Button).Enabled = True
                    Else
                        DirectCast(c, Button).Enabled = False
                    End If

                End If
            End If
        Next
        Return atleastone
    End Function

    Private Sub chiffre0_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles chiffre0.Click, chiffre1.Click, chiffre2.Click, chiffre3.Click, chiffre4.Click, chiffre5.Click, chiffre6.Click, chiffre7.Click, chiffre8.Click, chiffre9.Click
        Dim index As Integer
        For index = 0 To checkboxtag.Length - 1
            Select Case checkboxtag(index)
                Case "1" : vecttextboxespanel1(sender.text).ForeColor = Color.LemonChiffon
                    vecttextboxespanel1(sender.text).BackColor = Color.DarkBlue
                Case "2" : vecttextboxespanel2(sender.text).ForeColor = Color.LemonChiffon
                    vecttextboxespanel2(sender.text).BackColor = Color.DarkBlue
                Case "3" : vecttextboxespanel3(sender.text).ForeColor = Color.LemonChiffon
                    vecttextboxespanel3(sender.text).BackColor = Color.DarkBlue
                Case "4" : vecttextboxespanel4(sender.text).ForeColor = Color.LemonChiffon
                    vecttextboxespanel4(sender.text).BackColor = Color.DarkBlue
            End Select
        Next
    End Sub

    Private Sub efface_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles efface.Click
        Dim iter As Integer
        For iter = 0 To vecttextboxespanel1.Length - 1
            vecttextboxespanel1(iter).ForeColor = Color.Black
            vecttextboxespanel1(iter).BackColor = Color.Beige
        Next
        For iter = 0 To vecttextboxespanel2.Length - 1
            vecttextboxespanel2(iter).ForeColor = Color.Black
            vecttextboxespanel2(iter).BackColor = Color.Beige
        Next
        For iter = 0 To vecttextboxespanel3.Length - 1
            vecttextboxespanel3(iter).ForeColor = Color.Black
            vecttextboxespanel3(iter).BackColor = Color.Beige
        Next
        For iter = 0 To vecttextboxespanel4.Length - 1
            vecttextboxespanel4(iter).ForeColor = Color.Black
            vecttextboxespanel4(iter).BackColor = Color.Beige
        Next
    End Sub
End Class
0
Rejoignez-nous