Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
label1.Text und +=
Little Tester
myCSharp.de - Member



Dabei seit:
Beiträge: 120

Themenstarter:

label1.Text und +=

beantworten | zitieren | melden

Ich gehe vorsorglich schonmal in Deckung, aber ich habe ein ganz dämliches Problem.
Wenn ich die Drucker wie folgt auslese, dann funktioniert das super:


foreach (string printer in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
{
    label1.Text += printer + "\n";
}
Nur leider steht vor dem ersten Drucker das "label1.Text". Wie bekomme ich das weg?
IDE: Visual Studio 2022
Sofern nicht anders genannt basieren meine Projekte auf C# und .net 6
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1.977
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

Im einfachsten Fall kannst du das auch auf eine Zeile mit String.Join umschreiben.


label1.Text = String.Join('\n', System.Drawing.Printing.PrinterSettings.InstalledPrinters);

T-Virus
Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.832

beantworten | zitieren | melden

Grundlagen C# :-)
Beim ersten Durchlauf ist Text null, damit wird beim ersten Concat ToString des Objekts (hier Label) aufgerufen, das den Instanz-Name liefert.
Lösung: Text vorher auf "" setzen.

Kann man übrigens auch super easy via Debugger raus finden.
[Artikel] Debugger: Wie verwende ich den von Visual Studio?
private Nachricht | Beiträge des Benutzers
Little Tester
myCSharp.de - Member



Dabei seit:
Beiträge: 120

Themenstarter:

beantworten | zitieren | melden

Danke Abt. Jetzt wo du es schreibst...

Ich habe in eine komplett andere Richtung gedacht und gesucht, nämlich entweder nach einer Einstellung für das Label (Visible brachte nichts) oder einen Befehl.
Das war definitiv "zu einfach", weil "zu kompliziert" gedacht.

Aber wenn ich jetzt eh schon dabei bin mich zu blamieren: Gibt es eine Möglichkeit alle Labels die "label1" heißen auf "" zu setzen? Ich meine das was man bei "Text" einträgt, nicht bei "(Name)".
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Little Tester am .
IDE: Visual Studio 2022
Sofern nicht anders genannt basieren meine Projekte auf C# und .net 6
private Nachricht | Beiträge des Benutzers
Jompikumpi
myCSharp.de - Member



Dabei seit:
Beiträge: 58

beantworten | zitieren | melden

Zitat von Little Tester
Aber wenn ich jetzt eh schon dabei bin mich zu blamieren: Gibt es eine Möglichkeit alle Labels die "label1" heißen auf "" zu setzen? Ich meine das was man bei "Text" einträgt, nicht bei "(Name)".
Was soll der Sinn sein?

Füge noch ein Label in das Formular und es wird automatisch „label2“ heißen. Und dann möchtest du das ganze auch für „label2“ haben.

Und wenn man gut lesbaren, selbsterklärenden Code hat, dann hat man kein „label1“ oder „label2“, sondern z.B. „printerNamesLabel“.

Deine Liste wird so länger und länger.

Eigentlich musst du nur vor der Schleife den Text des Labels auf string.Empty setzen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Jompikumpi am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.832

beantworten | zitieren | melden

Zitat von Little Tester
Aber wenn ich jetzt eh schon dabei bin mich zu blamieren: Gibt es eine Möglichkeit alle Labels die "label1" heißen auf "" zu setzen? Ich meine das was man bei "Text" einträgt, nicht bei "(Name)".
Fällt unter [FAQ] Variablennamen zur Laufzeit zusammensetzen / Dynamisches Erzeugen von Controls

Im Endeffekt hast Du eine Vielzahl von Problemen und Folgeprobleme, die nur existieren, weil Du etwas bzw. "sehr" unstrukturiert vorgehst.
private Nachricht | Beiträge des Benutzers