bonjour,
j'ai créé des textbox dynamiquement,
mais quand je supprime le dernier , et je crée un autre je trouve que l'index continue dans l'ordre precedent
example:
le dernier a l'index 9
je le supprime par champ.dispose
je crée un autre que je suppose qu'il aura l'index 9 de nouveau, mais je trouve qu'il a l'index 10
mon code:
est ce qu'il y a une methode pour garder la contiguité des textbox créés namport quelle que soit l'index supprimé?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 Public Class Form1 Dim i As Integer Dim macollection As New Collection Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim champ As New TextBox i = i + 1 champ.Name = "tot" & Str(i) Me.Controls.Add(champ) macollection.Add(champ) champ.Top = 30 * i champ.Left = 100 champ.Width = 400 champ.Height = 20 macollection(i).Text = "voila je suis numero" & Str(i) & Chr(32) & macollection(i).Left & Chr(32) & macollection(i).Top AddHandler champ.KeyPress, AddressOf changerletexte End Sub Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click Dim l As Integer For l = 1 To macollection.Count If l = macollection.Count Then macollection(l).dispose() MsgBox(l) 'issi je trouve que l = i! 'meme après la suppression du dernier champ! 'pour quoi il y a un champ dans l'index qui reste vide? 'comment je peux supprimer le dernier champ de l'index à chaque fois en cliquant sur ce bouton? End If Next End Sub Private Sub changerletexte(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Dim k As Integer For k = 1 To macollection.Count If macollection(k).name = sender.name Then msgbox(macollection(k).text) End If Next End Sub End Class
je vous remercie en avance
Partager