Feedback

C# - Form-Überschrift zentrieren

Veröffentlicht von am 15.09.2008
(1 Bewertungen)
Es gibt in .NET 2.0 keine Möglichkeit die Überschrift einer Form zu zentrieren. Daher muss man sie mit führenden Leerzeichen "auffüllen".
/// <summary>
/// Zentriert die Überschrift der Form indem sie mit Leerzeichen aufgefüllt wird.
/// </summary>
/// <param name="formText">Die Ursprungsüberschrift (ohne führende Leerzeichen)</param>
/// <returns>Die modifizierte Überschrift (mit führenden Leerzeichen)</returns>
private String zentriereFormUeberschrift(String formText)
{      
    // erstelle ein temporäres Label zum ...
    Label lblTemp= new System.Windows.Forms.Label();
    lblTemp.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
    // ... berechnen der Breite eines Leerzeichens.
    labelTemp.Text = "";
    int einLeerzeichen = labelTemp.Width;
    labelTemp.Text = " ";
    einLeerzeichen = labelTemp.Width;
    labelTemp.Text = "  ";
    int zweiLeerzeichen = labelTemp.Width;
    einLeerzeichen = zweiLeerzeichen - einLeerzeichen;

    //Differenz/2 --> in Leerzeichen umrechnen und dem Text hintenanstellen.
    int anzLeerzeichen = (this.Width - labelTemp.Width) / 2 / einLeerzeichen; // '/ einLeerzeichen' weil n Pixel = 1 Leerzeichen
    labelTemp.Visible = false;

    String leerzeichen = "";
    for (int i = 0; i < anzLeerzeichen; i++)
        leerzeichen += " ";

    return leerzeichen + formText;
}
Abgelegt unter Text, Überschrift, zentrieren, capture.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!