Aggiungere schede in una TabStrip successivamente alla sua creazione
Poniamo il caso in cui, abbiamo una TabStrip con una sola scheda e vogliamo aggiungerne - in un momento successivo e a nostro piacimento - altre contenenti al loro interno anche uno o più Controlli.
Esempio n. 1
Nell'esempio che segue, le schede della TabStrip saranno aggiunte via codice cliccando su un tasto. Inoltre, ogni scheda così aggiunta conterrà un Button al suo interno:
Public Sub Form_Open() ' Intesta innanzitutto la "prima" scheda (dalla quale si comincerà per inserire successivamente le restanti nuove): TabStrip1.Text = "1" End Public Sub Button1_Click() Dim bt As Button With TabStrip1 ' Aggiunge una scheda: .Count = TabStrip1.Count + 1 ' Apre la scheda appena aggiunta...: .Index = .Count - 1 ' ...e la intesta: .Text = CStr(.Count) End With ' Quindi pone il "Button" nella nuova scheda: With bt = New Button(TabStrip1) As "tasto" .X = 40 .Y = 100 .W = 100 .H = 50 .Text = "Tasto " & CStr(TabStrip1.Count) End With End Public Sub tasto_Click() ' Prova il funzionamento dei "Button" inseriti: Me.Title = "Premuto tasto n. " & Last.Text End
Esempio n. 2
Pur essendo la gestione di dati rivolta alle più disparate situazioni e settori applicativi, un programma, singolarmente preso, affronta problematiche tematiche con casistiche ridondanti. Proprio allo scopo di fronteggiare rappresentazioni ripetitive di dati della stessa natura, si riportail codice necessario a generare nuove linguette (schede) di una “TabStrip”. Gli oggetti interni alla linguetta sono in parte organizzati in scala gerarchica, all'interno di contenitori grafici. Ciascuna riga contiene il commento esplicativo del codice che la precede.
Private Sub AggiungiScheda(iTotSk As Integer) Dim $ColorFondo As String = "&H00CFD6ED&" ' Color uovo di pettirosso chiaro Dim iColorFondo As Integer = Val($ColorFondo) Dim i as Integer Dim n as Integer '----------------------------------------------------------- n = iTotSk For i = 1 to n With TabSchede .Count = TabSchede.count + 1 ' aggiungo una nuova scheda .Index = .Count - 1 ' predispongo l'azione sulla nuova scheda .Text = "Sk n." & Cstr(TabSchede.Count ) ' scrivo il n° progressivo della linguetta corrente End With With Label1 = New Label(TabSchede) As "Label1" ' aggiungo la Label1 nella linguetta corrente .X = 30 .Y = 8 .Width = 80 .Height = 24 .Alignment = Align.Left .Font.Name = "Sans Serif" .Font.Size = 11 .Text = "Codice Id" End With With IdCassa = New TextLabel(TabSchede) As "CodId" ' aggiungo la TextLabel.CodId nella linguetta corrente .X = 32 .Y = 29 .Width = 62 .Height = 24 .Background = iColorFondo .Alignment = Align.Center .Border = Border.Sunken .Font.Name = "Sans Serif" .Font.Size = 10 .Font.Bold = True End With With Panel1 = New Panel(TabSchede) As "Panel1" ' aggiungo il Panel1 nella linguetta corrente .Border = 1 'Plain .X = 304 .Y = 31 .Width = 400 .Height = 80 End With With Label4 = New Label(Panel1) As "Label4" ' aggiungo la Label4, all'interno del Panel1 .X = 8 .Y = 7 .Width = 144 .Height = 24 .Alignment = Align.Left .Font.Name = "Sans Serif" .Font.Underline = True .Font.Size = 11 .Text = "Conto " End With With Panel2 = New Panel(Panel1) As "Panel2" ' aggiungo il Panel2, all'interno del Panel1 .Border = 1 'Plain .X = 104 .Y = 4 .Width = 292 .Height = 72 .Background = iColorFondo End With With Nome= New TextLabel(Panel2) As "Nome" ' aggiungo la TextLabel.Nome, all'interno del Panel2 .X = 1 .Y = 1 .Width = 290 .Height = 32 .Background = iColorFondo .Alignment = Align.Left .Font.Name = "Sans Serif" .Font.Size = 10 .Font.Bold = True End With With Descriz = New TextArea(TabSchede) As "Descriz" ' Aggiungo la TextArea.Descriz nella linguetta corrente .X = 304 .Y = 158 .Width = 400 .Height = 72 .Background = iColorFondo .Alignment = Align.Left .Border = Border.Sunken .ScrollBar = 2 ' Verticale .Wrap = True ' permette la continuazione “a capo del testo eccedente la singola riga della TextArea .Font.Name = "Sans Serif" .Font.Size = 10 .Font.Bold = True .Text = "12345678101234567820123345678301234567840123456785012345678601234567870123456788012345678901234567100" End With Next End