フォームのサイズを比例的に変更しようとしているので、サイズ変更ごとに正確にサイズ変更されたもの (幅、高さ、またはその両方) を知る必要があります。System.EventArgs
パラメータからその情報を取得するにはどうすればよいですか?
質問する
199 次
1 に答える
1
フォーム上の子コントロールのサイズをプロポーショナルに変更するには、TableLayoutPanelと呼ばれるネイティブ .NET コントロールを使用することをお勧めします。これにより、多くの手動コーディングを回避できます。それ以外の場合はMe.Size
、次のようなものを使用して書くことができます。
Dim _oldSize As Size
Dim _allowScaling As Boolean = False
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
'[...] perform initial setup of your controls
_oldSize = Me.Size
_allowScaling = True
End Sub
Private Sub Form1_Resize(sender As Object, e As System.EventArgs) Handles Me.Resize
If Not _allowScaling Then Exit Sub
Dim deltaSize As Size = Me.Size - _oldSize
Dim deltaWidth As Integer = Math.Abs(deltaSize.Width)
Dim deltaHeight As Integer = Math.Abs(deltaSize.Height)
If deltaWidth > 0 And deltaHeight > 0 Then
'both width and height have changed
ElseIf deltaWidth > 0 Then
'width has changed
ElseIf deltaHeight > 0 Then
'height has changed
End If
_oldSize = Me.Size
End Sub
于 2012-10-27T19:51:24.157 に答える