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;
}
Kommentare zum Snippet