2009-07-24 11 views
1

J'ai deux contrôles DataGridView, avec trois boutons entre eux verticalement, dans un formulaire VB 2005 qui doivent être redimensionnés et déplacés sur un redimensionnement de formulaire.Comment faire pour redimensionner les contrôles dans les fenêtres redimensionnables?

Le code ci-dessous fonctionne et fait ce que je veux. Il prend la différence entre la nouvelle taille et la taille par défaut, divise la différence de hauteur entre les deux DataGridViews, et déplace les choses correctement. Ce qui me dérange à ce sujet, c'est que j'ai codé les valeurs par défaut dans le gestionnaire ResizeEnd. Comment pourrais-je passer la taille par défaut afin que je ne me répète pas?

Encore mieux, y a-t-il un moyen de le faire avec l'ancrage, l'ancrage et d'autres choses, de sorte que je n'ai même pas besoin d'écrire du code?

Merci d'avance!

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 

Répondre

2

Vous pouvez utiliser le contrôle TableLayoutPanel.

+0

Bingo! Je vous remercie! – John

+0

Juste un suivi - cette suggestion m'a probablement rendu 5 000% plus productif dans cette tâche. Je peux être en mesure de rendre tous les formulaires de mon application redimensionnables ce soir. Merci encore! – John

Questions connexes