C# Aus 2 Objekten in ein Label schreiben aber wie?

EfreakZ

Cadet 1st Year
Registriert
Jan. 2013
Beiträge
11
Hallo zusammen,

ich habe folgendes Problem:

Ich habe Eine Userform auf der sich zB. 2 CheckBoxen ein Label und ein Button befindet.

Wenn nur CheckBox1 angeklickt ist soll ein Text in Label1 erscheinen (über Button) und wenn CheckBox2 angeklickt ist soll ein anderer Text in Label 1 erscheinen (über den selben Button) ABER jetzt mein problem: wie kann ich das machen, dass wenn CheckBox1 und CheckBox2 angeklickt sind, beide in dem Label untereinander geschrieben werden.

Mein noch nich korrekter C#-Code(Ich weiß er widerspricht sich):

Code:
private void button3_Click(object sender, EventArgs e)
        {
            if (checkBox3.Checked == true || checkBox4.Checked == true)
            {
                if (checkBox3.Checked == true)
                {
                    label1.Text = "Crosstrainer \n";
                }

                if (checkBox4.Checked == true)
                {
                    label1.Text = "Trainingshandschuhe \n";
                }
            }
        }

Bitte um Hilfe

Gruß EfreakZ
 
Man kann string aneinander hängen. Hier eine mögliche Lösung...

Code:
string s = ((checkBox3.Checked) ? "Crosstrainer \n" : string.empty) + ((checkBox4.Checked) ? "Trainingshandschuhe \n" : string.empty);

label1.Text = s;

Weiterhin ist eine Abfrage ala == true nicht nötig. if-Verzweifelungen werden immer ausgeführt, wenn der Wahrheitswert true lautet.

Eine schickere Gesamtlösung wäre daher

Code:
private void button3_Click(object sender, EventArgs e)
{
    string labelText = string.empty;

    if (checkBox3.Checked) {
        labelText += "Crosstrainer \n";
    }

    if (checkBox4.Checked)
    {
        labelText += "Trainingshandschuhe \n";
    }

    label1.Text = labelText;
}
 
Zuletzt bearbeitet:
Code:
 if (checkBox3.Checked == true && checkBox4.Checked == true)
            {
                   label1.Text = "Crosstrainer \n\r Trainingshandschuhe";
            }
 
einfach vorne dran ein if (checkBox3.Checked == true && checkBox4.Checked == true) label1.Text = "Bla\nBla";


Huch, da war ich wohl zu langsam :-).
 
Code:
private void button3_Click(object sender, EventArgs e)
        {
            if (checkBox3.Checked == true && checkBox4.Checked == true)
            {
                label1.Text = "Crosstrainer \ntrainingshandschuhe";
            }
            else if (checkBox3.Checked == true)
                {
                    label1.Text = "Crosstrainer \n";
                } else  if (checkBox4.Checked == true)
                {
                    label1.Text = "Trainingshandschuhe \n";
                }
        }
Nicht getestet, kann also sein das ich da ein klammer falsch gesetzt habe...
 
Danke erstmal für die schnellen Antworten.

Bei SubNatural's Lösung hab ich gleich gesehen, dass es dann richtig funktioniert, jedoch gehen die Funktionen dann nicht mehr wenn nur eine CheckBox angeklickt ist, aber so wie es dann letztendlich aussieht meinte ich es auch.

CapFuture's Lösung Funktioniert perfekt! Danke
 
Meins sollte ergänzend zu deinem Code einprogrammiert werden
Es fehlen natürlich die Abfragen, falls nur eines angeklickt wurde.
&& ist eine logische "UND" Verknüpfung und besagt eben dass checkBox3 UND checkBox4 aktiviert sein müssen
Die Einzelabfragen von dir müssen natürlich auch drin sein
 
Zuletzt bearbeitet:
Zurück
Oben