c# winforms, text im label begrenzen auf 10 ziffern?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Mit der Substring-Methode kannst du von Strings einen Teil herausgreifen.

Label.Text = text.Length > 10 ? text.Substring(0, 10) : text;

Wenn der Text auch aus nichtnumerischen Zeichen besteht, die nicht herausgefiltert werden sollen, müsstest du über den String iterieren und die Zeichen, die du behalten möchtest, in einen anderen String übertragen.

Beispiel:

var builder = new StringBuilder();
var counter = 0;
var chars = text.ToCharArray();

for (var index = 0; index < chars.Length; ++index)
{
  if (Char.IsDigit(chars[index]))
  {
    ++counter;

    if (counter < 10)
    {
      builder.Append(chars[index]);
    }
  }
  else
  {
    builder.Append(chars[index]);
  }
}

Label.Text = builder.ToString();

Dann übergebe der Eigenschaft Text des Labels eben nur zehn Zeichen.
Wenn du eine Zahl mit mehr Ziffern hast, dann musst du schon deinem Code mitteilen, dass er aus der Zahl einen String machen soll und davon die Anzahl Zeichen an der von dir gewünschten Stelle des Strings herausschneiden soll.

Woher soll das Label sonst wissen, ob du die ersten 10, die letzten 10 oder einfach 10 irgendwo aus der Mitte haben willst, wenn du das nicht im Code vorgibst?