Ajouter dynamiquement un groupe de textbox pour des calcul

Résolu/Fermé
amistos Messages postés 11 Date d'inscription mercredi 7 janvier 2015 Statut Membre Dernière intervention 31 octobre 2016 - 7 janv. 2015 à 23:16
amistos Messages postés 11 Date d'inscription mercredi 7 janvier 2015 Statut Membre Dernière intervention 31 octobre 2016 - 8 janv. 2015 à 22:02
Bonjour, a tous

voila je c que c dit plusieurs fois mais dans mon cas sous vb.net 2010 express je veux créer plusieurs textbox dynamiquement qui seront liées par plusieurs formule de calcul.

y'aurait il par hasard une façon plus simple pour parcourir une marge des textbox par exemple en les spécifiant par leur noms ou autre chose .. etc

" sinon de mon coté j ai essayé avec un code qui créé des textbox tout en leur ajoutant un compteur a leur propriété Name mais lorsque je veux les parcourir j en sais pas trop comment faire"

merci d'avance les pro de prendre le Temp de comprendre mon problème
A voir également:

4 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
8 janv. 2015 à 15:54
Bonjour,

Mettre un panel et 2 buttons avec ce code:


Option Strict On
Public Class Form1
    Dim Txt As TextBox
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim Top, Left, Width, Height As Integer
        Dim NumeroTextBox As Integer
        Top = 10
        Left = 10
        Width = 100
        Height = 20
        NumeroTextBox = 1
        For i = 0 To 4 - 1
            Txt = New TextBox()
            With Txt
                .Visible = True
                .Top = Top 'Definit la distance entre le bord de la fenetre et le bord du conteneur 
                .Left = Left 'Definit la distance entre le bord gauche de la fenetre et le bord du conteneur 
                .Width = Width 'Definit la largeur de l'objet 
                .Height = Height 'Definit la hauteur de l'objet 
            End With
            Panel1.Controls.Add(Txt)
            Top = Top + 30
            NumeroTextBox = NumeroTextBox + 1
        Next
    End Sub
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        Dim ctrl As Control
        For Each ctrl In Panel1.Controls

            If (ctrl.GetType() Is GetType(TextBox)) Then
                Dim txt As TextBox = CType(ctrl, TextBox)
                MsgBox(txt.TabIndex)
            End If
        Next
    End Sub

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Button1.Text = "Creer"
        Button2.Text = "Index"
    End Sub
End Class

1
Utilisateur anonyme
8 janv. 2015 à 21:08
Bonsoir,
Tabindex n'est pas un index pour retrouver un contrôle.
C'est ce qui détermine l'ordre de déplacement du focus avec la touche Tabulation.

Si tu veux pouvoir récuperer tes objets, au moment ou tu les gères mets les dans une liste.
Tu peux aussi mettre un index ou un identificateur dans la propriété Tag.

--
1
amistos Messages postés 11 Date d'inscription mercredi 7 janvier 2015 Statut Membre Dernière intervention 31 octobre 2016 1
8 janv. 2015 à 21:46
bonsoir,

j ai essayé avec la tabindex le code et ça a marché:

 Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As Integer = 0
Dim b As Integer = 0
For i = 0 To 10 - 1
a = a + 1
Dim TXT As TextBox = New TextBox
Panel1.Controls.Add(TXT)
With TXT.Name = "gbox"
TXT.Top = b
TabIndex = a
End With
b = b + 30

Next


End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
For Each ctrl As TextBox In Panel1.Controls
If ctrl.TabIndex > 4 Then ctrl.Text = "45"
Next
End Sub
End Class


est ce que j aurai des problèmes si je l'utilise de cette manière ou CA sera plu pratique de travailler avec le TAG.

en vb 6 c'était possible d'avoir un group de control sous le même nom avec les index différent par contre en vb.net 10 express c plus possible !!!

merci
0
Utilisateur anonyme > amistos Messages postés 11 Date d'inscription mercredi 7 janvier 2015 Statut Membre Dernière intervention 31 octobre 2016
8 janv. 2015 à 21:51
Tabindex ne sert pas à ça. Tu risques d'avoir un comportement bizarre de la touche Tabulation.
Oui Tag est plus adapté.

Si tu peux avoir un groupe, je te l'ai mis plus haut c'est une liste.
https://docs.microsoft.com/fr-fr/dotnet/api/system.collections.generic.list-1?redirectedfrom=MSDN&view=netframework-4.8#code-snippet-1

--
0
amistos Messages postés 11 Date d'inscription mercredi 7 janvier 2015 Statut Membre Dernière intervention 31 octobre 2016 1
8 janv. 2015 à 22:02
re bonsoir,

c'est bon la liste fera l'affaire merci beaucoup. On est Jamais déçu sur CCM ^^ .

je met en résolu .merci
0
Utilisateur anonyme
8 janv. 2015 à 11:36
Bonjour,

que veux tu dire par
pour parcourir une marge des textbox
?
0
amistos Messages postés 11 Date d'inscription mercredi 7 janvier 2015 Statut Membre Dernière intervention 31 octobre 2016 1
8 janv. 2015 à 20:16
bonjour, Whismeril
signfie que j aurai besoin de recuperer les données entrer par l'utilisateur, et puisque le nombre des textbox qui seront creer dynamiquement n'est pas constant donc faudra un code pour parcourir les textbox ,voila j esper que c bien claire! merci
0
amistos Messages postés 11 Date d'inscription mercredi 7 janvier 2015 Statut Membre Dernière intervention 31 octobre 2016 1
Modifié par amistos le 8/01/2015 à 21:01
bonjour , cs_Le Pivert

d'abord merci pour la rapidité de votre reponse.

pour le code qui genere les textbox avec les proprieté left top etc... je l ai deja dans mon code par contre je croi que la solution a mon problem c la partie ou ta utilisé la "tabindex" si possible quelque explication sur comment on peut utilisé la "tabindex" ou l index du controle en general pour traiter une collection des Tbox et merci encore !!
0