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

Printed on: April 18, 2024 at 16:04 o'clock

Member: opalka
Solution opalka Aug 09, 2018 updated at 08:08:50 (UTC)
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ß
Member: NonoCreeper
NonoCreeper Aug 09, 2018 updated at 08:30:44 (UTC)
Goto Top
Danke, ich habe nur nicht gecheckt, dass du aktualisiert hast. :D
Member: colinardo
colinardo Aug 09, 2018 updated at 09:03:05 (UTC)
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
Member: NonoCreeper
NonoCreeper Aug 11, 2018 at 16:11:11 (UTC)
Goto Top
Das sieht mit den <> Klammern dann immer so kompliziert aus, benutze ich normalerweise nicht, aber danke trotzdem!