2012-10-16 336 views
2

我的問題是我無法根據窗體大小調整窗體控件的大小。 我有一個表單,其中包含一個文本框,一個標籤和一個按鈕。在按鈕上單擊我需要在特定大小的窗口中打開相同的窗體,並且我希望窗體的所有控件都應該與窗體成比例,並且控件內的字體大小也應該與窗體成比例。任何人都可以請建議如何用代碼做到這一點。無法使用anchor和dock屬性解決此問題。調整窗口大小窗口控件

我的代碼:

Private Sub Test_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

    Dim widthRatio As Single = Me.Size.Width/300.0F 
    Dim heightRatio As Single = Me.Size.Height/300.0F 
    Dim scale As New SizeF(widthRatio, heightRatio) 
    Me.Scale(scale) 
    For Each control As Control In Me.Controls 
     control.Scale(scale) 
     control.Font = New Font(control.Font.FontFamily, control.Font.SizeInPoints * widthRatio * heightRatio) 
    Next 
End Sub 

這裏的寬度和高度比我有分歧300.0F,因爲我原來的形式是尺寸(300,300),但我沒有得到所有的控制同樣擴大...任何建議非常感謝。

感謝

pallavi

+0

不要調用Scale來調整控件的大小,而是將它的Size屬性設置爲新的Size。 – stuartd

+0

改爲改變表單的Font屬性。 –

回答

0

檢查這兩行

Dim widthRatio As Single = Me.Size.Width/300.0F 
Dim heightRatio As Single = Me.Size.Height/300.0F 

你的情況Me.Size.Width = 300和Me.Size.Height = 300,這就是爲什麼它不工作,變化寬度或高度,然後檢查它

+0

我改變了寬度和高度,仍然不工作:( – user1740857

+0

已經將值(高度/寬度)改爲300.0以外的其他值,control.Font.SizeInPoints * widthRatio * heightRatio與「DEBUG 「 – andy

+0

是我把它設置爲400和500(寬度和高度分別).. control.Font.SizeInPoints = 8.25最初 widthRatio = 1.333 heightRatio = 1.666 爲此工作正常,但寬度和高度變爲600,300),那麼高度調整不正確的按鈕...意味着按鈕的字體增加,但不是相應的按鈕的高度 – user1740857