Control auf zur Laufzeit erstelltem Benutzersteuerelement

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Control auf zur Laufzeit erstelltem Benutzersteuerelement

    Hallo,

    ich habe ein Benutzersteuerelement (bseLager) erstellt, auf welchem sich eine Textbox (tbx_ID) befindet.

    Zur Laufzeit generiere ich in einem TabControl verschiedene TabPages und lade das Benutzersteuerelement als Control in die TabPage.


    VB.NET-Quellcode

    1. Private Sub TabsGenerieren()
    2. For i = 0 To 1 Dim tp As New System.Windows.Forms.TabPage
    3. Dim crl As New bseLager
    4. crl.Name = "crl_m" & i
    5. tp.Name = "tp_m" & i
    6. tp.Controls.Add(crl)
    7. tp_m.TabPages.Add(tp)
    8. NextEnd Sub


    Wie kann ich nun die Textboxen auf den 2 Tabs ansprechen?


    VB.NET-Quellcode

    1. Private Sub Füllen()
    2. benutzersteuerelementauftab1.tbx_ID.Text = "Test 1"
    3. benutzersteuerelementauftab2.tbx_ID.Text = "Test 2"
    4. End Sub



    Grüße

    Tobias

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ING“ ()

    Controls durchlaufen, und schauen ob eins davon den Namen deines UserControls hat, danach hast du eine Instance und kannst damit arbeiten.

    //o. Public clr as New DeinControl

    Damit kannst du's Global ansprechen

    Grüße
    Habe es mit VB-Tag versucht. Leider hatte er den Quellcode immer in eine Zeile geschrieben. Habs aber jetzt geschafft. :)

    bei Public crl müsste ich ja das crl auch durchnummerieren: crl01, crl02
    und public kann ich in der for Schleife nicht anwenden...



    Grüße

    Tobias

    ING schrieb:

    Leider hatte er den Quellcode immer in eine Zeile geschrieben.

    Wie mein Link - wenn du ihm folgst - ausführt, gibt es 2 Editoren für Posts, und der Editor auf dem Reiter "Editor" stellt VB-Tags völlig unzureichend dar, sodass man nur mit dem Reiter "Quellcode" posten sollte.

    Zur Frage: tu die bseLager-Dinger, die du willst, in eine Liste, und benutze die Liste zum Zugriff:

    VB.NET-Quellcode

    1. Private _bseLagers As New List(Of bseLager)
    2. Private Sub TabsGenerieren()
    3. For i = 0 To 1
    4. Dim tp As New System.Windows.Forms.TabPage
    5. Dim crl As New bseLager
    6. _bseLagers.add(crl)
    7. tp.Controls.Add(crl)
    8. tp_m.TabPages.Add(tp)
    9. Next
    10. End Sub
    11. Private Sub Füllen()
    12. _bseLagers(0).Text = "Test 1"
    13. _bseLagers(0).Text = "Test 2"
    14. End Sub