nonocreeper
Goto Top

Alle Elemente in der Form mit gleichem Tag die gleiche Eigenschaft zuweisen C sharp

Ich habe in dem Entwurf der Form1.cs einige Elemente mit einem Tag versehen und möchte nicht alle einzeln in der Form1.cs ändern müssen, gibt es irgendeinen Weg die Elemente mit dem gleichen Tag glaichzeitig zu ändern? Es würde auch gehen wenn man alle elemente der Form herausfindet und alle auf den Tag überprüft. Kann mir jemand sagen wie man das anstrellen könnte.

Meine Vorstellung:
Tag: ABC
private void button1_Click(object sender, EventArgs e)
{
    ABC.Visible = false;
}
Dies funktioniert allerdings nicht, da der Tag Name nicht so verwendet werden kann. Kann mir jemand sagen wie das geht?

LG

Content-Key: 382830

Url: https://administrator.de/contentid/382830

Ausgedruckt am: 29.03.2024 um 02:03 Uhr

Mitglied: opalka
Lösung opalka 09.08.2018 aktualisiert um 10:08:50 Uhr
Goto Top
Hallo,

so sollte es funktionieren:

private void button1_Click(object sender, EventArgs e)
{
     foreach ( Control c in this.Controls )
     {
          if ( c.Tag != null && c.Tag.Equals( "ABC" ) )  
          {
               c.Visible = false;
          }
     }
}

Gruß
Mitglied: NonoCreeper
NonoCreeper 09.08.2018 aktualisiert um 10:30:44 Uhr
Goto Top
Danke, ich habe nur nicht gecheckt, dass du aktualisiert hast. :D
Mitglied: colinardo
colinardo 09.08.2018 aktualisiert um 11:03:05 Uhr
Goto Top
Oder man wenn man etwas Linq/Lambda benutzt auch so schnell gemacht:
this.Controls.Cast<Control>().Where(c => (string)c.Tag == "ABC").ToList().ForEach(c => c.Visible = false);  
Grüße Uwe
Mitglied: NonoCreeper
NonoCreeper 11.08.2018 um 18:11:11 Uhr
Goto Top
Das sieht mit den <> Klammern dann immer so kompliziert aus, benutze ich normalerweise nicht, aber danke trotzdem!