Mehre Label ansprechen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von ralle2312.

    Mehre Label ansprechen

    Hallo

    Ich hab da momentan ein Problem wo ich erstmal nicht weiter komme

    Und zwar möchte ich mehrere Label Sichtbar machen

    Ich hab bis jetzt diesen Code

    VB.NET-Quellcode

    1. Dim Familien_Mitglied_Anzahl As Integer = 5
    2. For i As Integer = 1 To Familien_Mitglied_Anzahl Me.Controls("lbl_mitglied_" & i.ToString).Visible = True Next



    aber es zeigt mir eben diesen Fehler an

    Quellcode

    1. Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.



    und bei dem Fehler weis ich nicht weiter

    Vermutlich gibt es da eine sehr simple Lösung aber ich finde sie gerade nicht :thumbsup:

    edit: Und vielleicht mag mir jemand sagen wie ich meinen VB Code untereinander mache :thumbsup:
    Hallo,

    den Code kannst du untereinander einfügen, wenn du anstatt der Editor-Ansicht die Code-Ansicht nimmst
    und dann deinen Code dort einfügst.

    Diese Exception zeigt, dass es ein Label nicht gibt.
    Hast du in deiner Form diese 5 Labels?

    Mein Code wäre so :D

    VB.NET-Quellcode

    1. For Each label As Label In Me.Controls.OfType(Of Label)()
    2. If label.Name.StartsWith("lbl_mitglied_") Then
    3. label.Visible = True
    4. End
    5. Next


    Hoffe, ich konnte dir helfen.

    MFG

    Alex-Digital :D
    ~ Alex-Digital :D

    if(!Internet.VBP.Get<User>("Alex-Digital").IsOnline) this.Close(); :D

    VB.NET-Quellcode

    1. Me.Controls.OfType(Of Label).Where(Function(item) item.Name.StartsWith("lbl_mitglied_")).ToList.ForEach(Sub(item) item.Visible = True)


    Einzeiler ^^

    Wenn das nicht klappt, dann gib der Eigenschaft Tag von den 5 Labels den Wert "mitglied" und probier den code:

    VB.NET-Quellcode

    1. Me.Controls.OfType(Of Label).Where(Function(item) DirectCast(item.Tag, String) = "Mitglied").ToList.ForEach(Sub(item) item.Visible = True)


    €oder das was xtts sagt.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „RushDen“ ()

    Hallo,

    ich sehe, dass du ein Bild hinzugefügt hast, aber ich kann es nicht sehen.
    Du kannst auch Anhänge hinzufügen, indem du unter dem Editor auf Dateianhänge
    klickst und dann auf Datei auswählen gehst, das Bild auswählst und dann unten rechts auf Hochladen gehst.
    Dann ist das Bild hochgeladen und dann gehst du auf Absenden :)

    Mein Code bewirkt, dass alle Labels, die mit lbl_mitglied_ anfangen, sichtbar werden,
    aber wenn du nur 5 Labels willst, mach in meinen Code anstatt dem Visible noch eine If-Abfrage
    die schaut, ob das Label mit 1, 2, 3, 4 oder 5 endet :)

    VB.NET-Quellcode

    1. For Each label As Label In Me.Controls.OfType(Of Label)()
    2. If label.Name.StartsWith("lbl_mitglied_") Then
    3. ' Da kommt die If-Abfrage rein
    4. ' If label.Name.EndsWith("1") Then
    5. ' label.Visible = True
    6. ' End If
    7. ' usw. :D
    8. End If
    9. Next


    Achso, jetzt weiß ich, warum mein Code nicht geht,
    weil in Zeile 4 nicht End sondern End If stehen muss,
    weil ansonsten End das Programm beenden würde :O

    Hoffe, ich konnte dir helfen.

    MFG

    Alex-Digital :D
    ~ Alex-Digital :D

    if(!Internet.VBP.Get<User>("Alex-Digital").IsOnline) this.Close(); :D
    Danke für die vielen Antworten!

    allerdings hat es xtts02 gelöst :D

    Er hat recht die Labels liegen auf einer Groupbox

    Danke trotzdem für die Hilfe :thumbup:

    Mein Code jetzt:

    VB.NET-Quellcode

    1. For i As Integer = 1 To Familien_Mitglied_Anzahl gb_mitglieder.Controls("lbl_mitglied_" & i.ToString).Visible = True Next


    aber das mit dem vbcode versteh ich immer noch nicht :D


    Falls wer eine alternative sehen will die ich mir kurz generiert hab
    Hier bitte :thumbsup:
    Dateien
    Hallo zusammen,

    hätte auch eine Frage zu dem Thema.
    Ich habe Label auf meiner Form von Mo1 - Mo9 , um Code zu sparen habe ich mich an der Schleife probiert, nur leider scheint er wahllos die Labels einzulesen und dann demensprechend den Bind falsch zuordnen. In einzelnen Schleifen zu jedem Label gehts.
    Einer vieleicht eine Idee / Tipp

    VB.NET-Quellcode

    1. For Each label_Mo As Label In tlp1.Controls.OfType(Of Label)()
    2. If label_Mo.Name.StartsWith("Mo") Then
    3. lb_counter = lb_counter + 1
    4. ' Databinding herstellen
    5. label_Mo.DataBindings.Add(New Binding("Text", BindingKalendar(lb_counter), "tag1", True))
    6. label_Mo.Text = CStr(CType(BindingKalendar(lb_counter), DataRowView)("tag1"))
    7. Label20.Text = CStr(CType(BindingKalendar(lb_counter), DataRowView)("tag1"))
    8. 'Label einfärben
    9. If label_Mo.Text = "X" Then
    10. label_Mo.BackColor = Color.Red
    11. label_Mo.ForeColor = Color.Red
    12. Else
    13. label_Mo.BackColor = Color.Transparent
    14. label_Mo.ForeColor = Color.White
    15. End If
    16. 'LabelText übernehmen
    17. If label_Mo.Text = "X" Or String.IsNullOrWhiteSpace(label_Mo.Text) Or label_Mo.Text = "0" Then
    18. Else
    19. label_Mo.Text = LLMO2
    20. label_Mo.ForeColor = Color.Black
    21. End If
    22. MessageBox.Show("Counteranzeige: " & lb_counter)
    23. End If
    24. Next


    Grüße Ralf


    Hab mein Problem dann mittlerweile so gelöst

    VB.NET-Quellcode

    1. Dim Zähler_Fr As Integer = -1
    2. Do
    3. Zähler_Fr += 1
    4. ' In der Schleife
    5. Dim l_Fr As Label = CType(tlp1.Controls("Fr" & Zähler_Fr), Label)
    6. l_Fr.DataBindings.Add(New Binding("Text", BindingKalendar(Zähler_Fr), "tag5", True))
    7. l_Fr.Text = CStr(CType(BindingKalendar(Zähler_Fr), DataRowView)("tag5"))
    8. If l_Fr.Text = "X" Then
    9. l_Fr.BackColor = Color.Red
    10. l_Fr.ForeColor = Color.Red
    11. Else
    12. l_Fr.BackColor = Color.Transparent
    13. l_Fr.ForeColor = Color.White
    14. End If
    15. If l_Fr.Text = "X" Or String.IsNullOrWhiteSpace(l_Fr.Text) Or l_Fr.Text = "0" Then
    16. Else
    17. l_Fr.Text = LLMO2
    18. l_Fr.ForeColor = Color.Black
    19. End If
    20. Loop Until Zähler_Fr = 8


    Grüße

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ralle2312“ ()