2009-07-24 12 views
1

私は2つのDataGridViewコントロールを持っています.3つのボタンを縦に並べて、サイズを変更してフォームのサイズを変更する必要があるVB 2005フォームにします。サイズ変更可能なウィンドウでコントロールのサイズを変更する方法はありますか?

以下のコードは機能し、私がしたいことをします。新しいサイズと既定のサイズの差をとり、2つのDataGridView間の高さの差を分割し、正しく前後に移動します。

私は、ResizeEndハンドラにデフォルト値をハードコードしていると私はバグがあります。どのように私は自分自身を繰り返さないようにデフォルトのサイズを渡すつもりですか?

アンカー、ドッキングなどでコードを実行する方法があるので、コードを書く必要はありません。

ありがとうございます!

Private Sub dlgShowAssets_ResizeEnd(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.ResizeEnd 


    Dim defaultWindowSize As New System.Drawing.Size(759, 619) 
    Dim defaultAssetDGVSize As New System.Drawing.Size(730, 153) 
    Dim defaultAssetDGVPos As New System.Drawing.Point(9, 186) 

    Dim defaultButton1Pos As New System.Drawing.Point(9, 345) 
    Dim defaultButton2Pos As New System.Drawing.Point(100, 345) 
    Dim defaultButton3Pos As New System.Drawing.Point(191, 345) 

    Dim defaultDetailDGVSize As New System.Drawing.Size(730, 177) 
    Dim defaultDetailDGVPos As New System.Drawing.Point(9, 374) 

    Dim deltaX As Integer = Me.Size.Width - defaultWindowSize.Width 
    Dim deltaY As Integer = Me.Size.Height - defaultWindowSize.Height 
    Dim deltaSize As New System.Drawing.Size(deltaX, deltaY/2) 
    Dim deltaPos As New System.Drawing.Point(0, deltaY/2) 


    Me.AssetDataGridView.Size = defaultAssetDGVSize + deltaSize 

    Me.btnAddAsset.Location = defaultButton1Pos + deltaPos 
    Me.btnEditAsset.Location = defaultButton2Pos + deltaPos 
    Me.btnDeleteAsset.Location = defaultButton3Pos + deltaPos 

    Me.AssetIdentifierDataGridView.Size = defaultDetailDGVSize + deltaSize 
    Me.AssetIdentifierDataGridView.Location = defaultDetailDGVPos + deltaPos 

End Sub 

答えて

2

TableLayoutPanelコントロールを使用できます。

+0

ビンゴ!ありがとうございました! – John

+0

ちょうどフォローアップ - その提案はおそらく私にこの仕事で5000%の生産性をもたらしました。私は今夜​​、私のアプリのすべてのフォームをサイズ変更することができるかもしれません。再度、感謝します! – John

関連する問題