Laden...

Labels per Namen aus Config-Datei ansprechen

Erstellt von yooti vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.598 Views
Y
yooti Themenstarter:in
11 Beiträge seit 2009
vor 13 Jahren
Labels per Namen aus Config-Datei ansprechen

Hallo

BeispielProjekt:

nehmen wir mal an ich habe auf einer Form 10 Labels.

label_01
label_02
label_03
usw.

in der Form_Load soll aus einer "config.xml" abgefragt werden ob das ein oder andere Labels sichtbar sein soll oder nicht.
mit einen haufen schreibaufwand bekomme ich das auch realisiert, also nicht das problem.

Mein ziel ist also das mit so wenig wie möglich code zu bewerkstelligen.

ICH WEISS das der code hier unten nicht ganz schlüssig ist.

meine Idee bisher ist:


labelvisible lvis = new labelvisible();

private void Form1_Load(object sender, EventArgs e)
        {
            lvis.sichtbar();
        }

die Klasse labelvisible


private void labelvisible()
        {
           if (File.Exists(configDatei))
            {
                XmlNode temp_xmlRead01 = xmlDoc.SelectSingleNode(@"/Config/label_01/Visible");
                string temp_xmlRead02 = temp_xmlRead01.InnerText;
                
                if (temp_xmlRead02 == "true")
                {
                    // funst natürlich nicht
                    label_01.Visible = true;
                }

                if (temp_xmlRead02 == "false")
                {
                    // funst natürlich nicht
                    label_01.Visible = false;               
                }
            }
            
        }

soweit ist erst mal meine gedankengang !

  1. ich weiß das das ganze noch ein eine schleife gesetzt werden muß ( wie weiß ich nicht genau)
  2. wie kann ich in dann in der schleife auf die label eigenschaften zugreifen ?

Ich hoffe Ihr habt mich verstanden was ich machen möchte.
vieleicht gibt es ja auch ganz andere lösungsansätze

mfg
yooti

U
50 Beiträge seit 2009
vor 13 Jahren

Hallo,

ne extra klasse würde ich nicht dafür schreiben. Benutz erstmal ein Array für die Labels. Dann liest du in einer for-Schleife aus der XML aus und machst ggf. das entsprechende Label sichtbar.

Willst du aus einer anderen Klasse auf ein Label zugreifen, musst du das Label public machen und brauchst außerdem eine Referenz auf die Form. Etwa so:

form.label1.irgendwas
Gelöschter Account
vor 13 Jahren

versteife dich nciht auf die variablennamen. verwende die .Name eigenschaft der labels um diese zu identifizieren. dann kannst du einfach aus der form durch die controlscollection die richtigen labels herausziehen und dort die eigenschaften setzten. des weiteren musst du nicht diese stringvergleiche machen, sondern kannst den gespeicherten string ("true"/"false") gleich in ein bool parsen (mit bool.Parse(...) )