2

私の問題は、フォームのサイズに合わせてフォーム コントロールのサイズを変更できないことです。テキストボックス、ラベル、ボタンを含むフォームがあります。ボタンをクリックすると、特定のサイズのウィンドウで同じフォームを開く必要があり、フォームのすべてのコントロールがフォームと比例し、コントロール内のフォントサイズも比例する必要があります。誰でもコードでそれを行う方法を提案できますか? アンカーとドックのプロパティを使用してこれを解決することはできません。

私のコード:

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) であるためです。ただし、すべてのコントロールが均等に拡張されるわけではありません。

ありがとう

パラヴィ

4

1 に答える 1

0

この2行を確認してください

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 それが機能しない理由です。幅または高さを変更してから確認してください

于 2012-10-16T09:09:11.323 に答える