2009-07-24 94 views
1

我有兩個DataGridView控件,它們之間有三個垂直按鈕,在一個VB 2005窗體中需要調整窗體大小並在窗體大小上移動。如何在調整大小的窗口中調整控件大小?

下面的代碼工作,並做我想要的。它採用新大小和默認大小之間的差異,拆分兩個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 2009-07-24 19:58:31

相關問題