2009-07-24 97 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

相关问题