2013-06-05 2 views
-1

Я хочу выровнять текст основной формы в центре строки заголовка. Я понятия не имею, как я начну это. Я также «искал» эту проблему и не нашел решения.Выравнивание текста основной формы в форме vb.net

+0

http://stackoverflow.com/questions/11947314/how-to-center-align-the-title-bar-text -in-windows-form – maxedev

+0

Строка заголовка окна окрашена Windows. Дни перехвата WM_NCPAINT, чтобы сделать это сами, давно прошли, слишком сложны, чтобы иметь дело с визуальными стилями и предпочтениями пользователя. Простой способ получить текст в центре - это обновить ваш компьютер до Windows 8;) –

ответ

1

Это работает для меня предостережения упоминалось в моем замечании ссылке:

Public Class Form1 
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
    CenterMe() 
End Sub 
Private Sub Form1_Resize(sender As Object, e As System.EventArgs) Handles Me.Resize 
    CenterMe() 
End Sub 
Private Sub CenterMe() 
    Dim g As Graphics = Me.CreateGraphics() 
    Dim startingPoint As Double = (Me.Width/2) - (g.MeasureString(Me.Text.Trim, Me.Font).Width/2) 
    Dim widthOfASpace As Double = g.MeasureString(" ", Me.Font).Width 
    Dim tmp As String = " " 
    Dim tmpWidth As Double = 0 
    Do 
     tmp += " " 
     tmpWidth += widthOfASpace 
    Loop While (tmpWidth + widthOfASpace) < startingPoint 

    Me.Text = tmp & Me.Text.Trim & tmp 

    Me.Refresh() 
End Sub 
End Class 
+0

hmm i бросил 2 текстовых поля и кнопку на winform, и это ничего не мерцает для меня .. – maxedev

+0

мм .. извините, я положил i неправильное событие ... – matzone

Смежные вопросы