Aurel62190
Messages postés22Date d'inscriptiondimanche 21 juin 2009StatutMembreDernière intervention 7 septembre 2009
-
17 juil. 2009 à 13:18
Aurel62190
Messages postés22Date d'inscriptiondimanche 21 juin 2009StatutMembreDernière intervention 7 septembre 2009
-
19 juil. 2009 à 13:19
Bonjour,
J'ai un souci avec des controles que j'ai ajouté avec la méthode "controls.add(vb.textbox, nom_de la_textbox)"
Le truc, c'est que j'ai fait un sstab dans lequel le textbox est généré automatiquement à l'ajout d'un tab.Le nom du textbox varie en fonction du tab (Par exemple : Si le tab2 est sélectionné, Le nom du textbox est "text2")
Mon souci, le voila, j'ai ajouté un bouton en dehors du sstab qui sert à supprimer un tab, donc mon idée pour faire ça, c'est de copier tout le contenu des textbox et de les coller au textbox qui le précède :
exemple : sur un sstab contenant 4 tabs, je supprime l'onglet 2, d'abord, je copie les textbox
donc text2.text text3.text, text3.text text4.text
Puis je supprime text4 et enfin le tab4.
Seulement il me dit qu'il y a une erreur quand je dis text2.text = text3.text
Aurel62190
Messages postés22Date d'inscriptiondimanche 21 juin 2009StatutMembreDernière intervention 7 septembre 20091 17 juil. 2009 à 16:02
J'ai pu remédier à cette erreur. Text2 et Text3 existent à ce moment-là. J'ai tapé ce code et il marche :
controls.item(text2).text = controls.item(text3).text
maintenant, j'ai un autre pb et celui-là je ne comprend pas, peut-être que tu peux m'aider.
Etant donné qu'il peut y avoir plusieurs textbox, j'uilise la boucle do while .... loop
voici le code : Option Explicit
Dim NbTab As Integer 'Variable SStab
Dim Left, Top, Width, Height As Integer 'Variable Textbox
Dim txtboxname As String
Dim N_txtboxname As String
Dim txtbox As TextBox
Dim y As Integer
Public Sub AddTab(x As Integer)
Left = "120"
Top = "480"
Width = "9615"
Height = "5175"
txtboxname = "Text" & x
With SSTab1
.TabsPerRow = x + 1
.Tabs = x + 1
.Tab = x
.Caption = CStr(x)
End With
Set txtbox = Controls.Add("VB.textbox", txtboxname, SSTab1)
With txtbox
.Visible = True
.Left = Left
.Top = Top
.Width = Width
.Height = Height
.Text = txtbox.Name
End With
End Sub
Public Sub RemoveTab(x As Integer)
' Le problème situe là
Do While x < SSTab1.TabsPerRow
txtboxname = "Text" & x
N_txtboxname = "Text" & x + 1
Controls.Item(txtboxname).Text = Controls.Item(N_txtboxname).Text
x = x + 1
Loop
End Sub
Private Sub Command1_Click()
NbTab = SSTab1.TabsPerRow
Call AddTab(NbTab)
End Sub
Private Sub Command2_Click()
NbTab = SSTab1.Tab
Call RemoveTab(NbTab)
End Sub
Private Sub UserControl_Initialize()
Call AddTab(0)
End Sub
Le problème, c'est que si j'ai 5 tabs au total et donc 5 textbox, il va me demandé text6 pourtant il n'existe pas et je précise que la boucle est inférieur au nombre total(5 tabs) de tab (donc 4 tabs)
Aurel62190
Messages postés22Date d'inscriptiondimanche 21 juin 2009StatutMembreDernière intervention 7 septembre 20091 19 juil. 2009 à 13:19
Et puis, en passant, je vois que tu m'as l'air bien calé dans le domaine. Est-ce que tu sé comment on fait pour que le usercontrol s'agrandit au fur et à mesure quand on le place dans le form?
Par exemple : si je prend le controle commandbutton pour le mettre dans le form, plus j'agrandie le control, plus le bouton s'agrandit mais pour le usercontrol, il reste à la taille initiale mais il ne varie pas en focntion de ce que je voudrais ....