Aurel62190
Messages postés22Date d'inscriptiondimanche 21 juin 2009StatutMembreDernière intervention 7 septembre 2009
-
14 juil. 2009 à 17:27
Aurel62190
Messages postés22Date d'inscriptiondimanche 21 juin 2009StatutMembreDernière intervention 7 septembre 2009
-
14 juil. 2009 à 19:41
Bonjour à tous,
J'ai un souci de décalage.
Dans une form, j'ai mis un sstab avec l'ajout de tab en dynamique. Le truc, c'est que, à l'ajout d'un tab, automatiquement il y a un textbox qui se crée.
En gros, si j'ajoute dynamiquement 5 tab, il y aura 5 textbox dont 1 par tab.
Mon problème, le voici :
les 2 derniers tabs créés marchent comme sur des roulettes mais par contre dans les premiers tabs, les textbox se décalent au fur et à mesure et après on finit par ne plus les voir
quelqu'un aurait-il une solution pour éviter le décalage, merci d'avance !
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 14 juil. 2009 à 18:44
t'étais pas loin....
en fait tu dis au sstab d'abord d'ajouter, puis ensuite seulement d'accepter un tab de plus sur la même ligne
résultat, il a déjà décalé le reste
il faut donc juste inverser l'ordre de ces 2 lignes :
SSTab1.Tabs = y
SSTab1.TabsPerRow = y
NéANMOINS! tes variables sont mauvaises
1. c'est des variant
2. des noms réservés ! (propriétés de la form)
3. inutiles, ta procédure peut tout gérer seule
voici ce que çà devrait donner :
Option Explicit
Private Sub
AddTab(iNum
As Integer
)
' préparation sstab
With SSTab1
.TabsPerRow = iNum + 1
.Tabs = iNum + 1
.Tab = iNum
.Caption = "Onglet " & CStr(iNum)
End With
' création et
attachement textbox
Dim tBox As textbox
Set tBox = Me.Controls.Add("VB.TextBox", "Text_" & CStr(iNum), SSTab1)
With tBox
.Text = tBox.Name
.Move 120, 480, 9615, 5175
.Visible = True
End With
Set tBox = Nothing
End Sub
Private Sub Command1_Click()
Call AddTab(SSTab1.Tabs)
End Sub
Private Sub Form_Load()
' juste pour voir
centré...
With SSTab1
.Width = 9615 + (120 * 2)
.Height = 5175 + (480 * 2)
End With
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 14 juil. 2009 à 17:30
salut,
oui, la création d'un tab va en fait masquer les box sur une partie non visible
lors de la création tu dois forcer le positionnement après la création du tab
Aurel62190
Messages postés22Date d'inscriptiondimanche 21 juin 2009StatutMembreDernière intervention 7 septembre 20091 14 juil. 2009 à 17:55
Merci de m'avoir répondu mais pour forcer le positionnement, on fait comment ?
je te donne ma source mais j'ai cherché pas mal mais je n'y arrive vraiment pas !
Voici ma source, si tu pourrais me débloquer, je ne te dirais pas "merci" mais plutot "MERCI"
Option Explicit
Dim NbTab As Integer 'Variable SStab
Dim Left, Top, Width, Height As Integer 'Variable Textbox
Dim textboxname As String
Dim textbox As Control
Dim y As Integer
Public Sub AddTab(x As Integer)
y = x + 1
Left = "120"
Top = "480"
Width = "9615"
Height = "5175"
textboxname = "Text" & x
SSTab1.Tabs = y
SSTab1.TabsPerRow = y
SSTab1.Tab = x
SSTab1.Caption = x
Set textbox = Controls.Add("VB.textbox", textboxname, SSTab1)
textbox.Visible = True
textbox.Left = Left
textbox.Top = Top
textbox.Width = Width
textbox.Height = Height
textbox.Text = textbox.Name
End Sub
Private Sub Command1_Click()
NbTab = SSTab1.Tabs
Call AddTab(NbTab)
End Sub