Announcement

Collapse
No announcement yet.

Problem: maximale Zeilenlänge einfach bestimmen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem: maximale Zeilenlänge einfach bestimmen

    Hallo,
    ich habe folgende Situation:
    <u>Problem:</u> Ich möchte den Inhalt z.B. einer Stringliste (string[]) von variabler Länge in einem Feld (Panel, Textbox oder Listbox) unterbringen und den benötigten Platz (Size in Pixel) bestimmen.
    <u>Lösung:</u> Folgendes funktioniert problemlos:
    // aStr ist das String-Array
    // ctl ist das jeweils gewünschte Control
    int iHoehe = (int)(aStr.Length * ctl.Font.GetHeight());
    // erzeuge das Graphics-Objekt des Controls
    int i1, iBreite = 0;
    System.Drawing.Graphics gr = ctl.CreateGraphics();
    foreach( System.String s0 in aStr ) {
    i1 = (int)gr.MeasureString(s0, ctl.Font).Width;
    if (i1 > iBreite) iBreite = i1;
    }
    Und das kann ich in eine Standardfunktion auslagern.
    <u>Ungünstig</u> empfinde ich, dass bei jeder dieser Situation <b>ctl.Graphics</b> erzeugt und in jeder Zeile MeasureString() mit ctl.Font ausgeführt werden muss (und ich jedesmal viel Code schreiben muss). <b>Optimiert</b> der Compiler (bei mir Borland-C#) dies ausreichend? Lohnt es sich, Graphics manuell dem <b>GarbageCollector</b> auszuliefern? Gibt es <u>schnellere und/oder einfachere</u> Verfahren?
    Danke für Hinweise!
    Jürgen
Working...
X