vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Tab kopieren 
Autor: Maywood
Datum: 01.11.05 14:00

Du könntest hierfür eine eigene TabPage-Klasse mit einem Copy-Konstruktor anlegen. Aus Interesse hab ich mal kl. Beispiel erstellt:

Die Klasse MyTabPage:
 
Public Class MyTabPage
 
    Inherits TabPage
 
    Public Sub New()
        MyBase.New()
    End Sub
 
    Private Sub New(ByVal sourceTab As MyTabPage)
        MyBase.New()
        Me.CopyAllControls(sourceTab)
    End Sub
 
    Private Sub CopyAllControls(ByVal sourceControl As MyTabPage)
        Dim cc As Control
        For Each c As Control In sourceControl.Controls
            '// Me.Controls.Add(CopyControl(c))
            cc = CopyControl(c)
            cc.Parent = Me
 
            '// Nur temporär tum testen
            cc.Text = "Copy of " + cc.Text
        Next
    End Sub
 
    Public Function CreateNewInstance(ByVal Type As Type) As Control
        Return CType(Activator.CreateInstance(Type), Control)
    End Function
 
    Public Function AllowSetThisProperty(ByVal pi As Reflection.PropertyInfo) _
      As Boolean
        Dim doNot As String() = {"Parent", "AccessibleRole", "WindowTarget"}
        Return Array.IndexOf(doNot, pi.Name) = -1 And pi.CanWrite
    End Function
 
    Public Function CopyControl(ByVal sourceControl As Control) As Control
        Dim value As Object = Nothing
        Dim newControl As Control = Me.CreateNewInstance(sourceControl.GetType( _
          ))
 
        For Each pi As System.Reflection.PropertyInfo In sourceControl.GetType( _
          ).GetProperties()
            value = pi.GetValue(sourceControl, Nothing)
            If Not value Is Nothing AndAlso _
                Me.AllowSetThisProperty(pi) Then
                Try
                    Debug.WriteLine("Set (" + sourceControl.GetType().Name + ")" & _
                      "" + pi.Name + "..")
                    pi.SetValue(newControl, value, Nothing)
                Catch ex As Exception
                    Debug.WriteLine(ex.ToString())
                End Try
            End If
        Next
 
        Return newControl
    End Function
 
    Public Function Clone() As MyTabPage
        Return (New MyTabPage(Me))
    End Function
End Class
Anwendungsbeispiel:
 
Option Strict On
Option Explicit On
 
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
 
        '// ein Tab erstellen und füllen
 
        Dim tp1 As New MyTabPage
 
        Dim tb1 As New TextBox
        tb1.Text = "TextBox1"
        tb1.Location = New Point(10, 10)
        tp1.Controls.Add(tb1)
 
        Dim tb2 As New TextBox
        tb2.Text = "TextBox2"
        tb2.Location = New Point(10, 50)
        tp1.Controls.Add(tb2)
 
        Dim btn1 As New Button
        btn1.Text = "Button1"
        btn1.Location = New Point(10, 100)
        tp1.Controls.Add(btn1)
 
        Me.TabControl1.TabPages.Add(tp1)
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button2.Click
 
        '// ersten Tab kopieren 
 
        Dim tpSource As MyTabPage = CType(Me.TabControl1.TabPages(0), MyTabPage)
        Dim tpCopy As MyTabPage = tpSource.Clone()
        Me.TabControl1.TabPages.Add(tpCopy)
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button3.Click
 
        '// test
 
        For Each c As Control In Me.TabControl1.TabPages(1).Controls
            MessageBox.Show(c.ToString)
        Next
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Tab kopieren1.125SuperVisor31.10.05 15:01
Re: Tab kopieren673ModeratorFZelle31.10.05 17:10
Re: Tab kopieren869Maywood01.11.05 14:00
Re: Tab kopieren713SuperVisor01.11.05 16:46

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel