web-dev-qa-db-fra.com

Comment mes éléments de formulaire peuvent-ils être redimensionnés lorsque la fenêtre est redimensionnée?

J'ai ce formulaire, avec un contrôle de tabulation et une zone de liste à l'intérieur:

enter image description here

Lorsque je redimensionne la hauteur de la fenêtre, j'obtiens quelque chose comme ceci:

enter image description here

Cependant, je souhaitais réellement que le contrôle des onglets et la zone de liste soient redimensionnés avec le résultat suivant:

enter image description here

Je pense pouvoir obtenir cet effet en répondant simplement à une sorte de méthode onResize() dans le formulaire et en effectuant mes propres calculs pour mettre à jour manuellement la taille du contrôle de tabulation et de la zone de liste en conséquence.

Cependant, j'ai vu de nombreuses applications atteindre cet effet, alors je suppose qu'il existe une meilleure façon de le faire, peut-être une fonctionnalité intégrée.

Connaissez-vous un meilleur moyen d'obtenir cet effet?

7
Voldemort

Voici un bon tutoriel qui explique comment redimensionner les contrôles winform lors du redimensionnement du contrôle de formulaire conteneur à l'aide des propriétés dock et anchor:

http://www.techrepublic.com/article/manage-winform-controls-using-the-anchor-and-dock-properties/6165908

En définissant les quatre valeurs de la propriété d'ancrage (haut, droite, bas, gauche), vous pouvez rendre les bords de votre contrôle immobiles par rapport au contrôle de formulaire, même lorsqu'il est redimensionné.

11
Cdeez

Vous pouvez utiliser la propriété anchor du contrôle Onglet - ancrez simplement les quatre côtés.

7
xpda

Cela peut aider:

Private Sub frmMain_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged 'tab container sizechanged event
        tabMain.Dock = DockStyle.None 'set dock to none to allow resize
        tabMain.Size = New Size(New Point(3, 3)) ' set size anything you want
        tabMain.Dock = DockStyle.Fill 'set dock to fill to fit to container
    End Sub
1
gani

Vous pouvez utiliser la propriété Dock de Of Both Tab et la zone de liste pour remplir

1
Ankur Singh

Pour obtenir le résultat souhaité, placez le contrôle comme vous le souhaitez dans le format standard. utilisez ensuite la propriété Anchor en haut, en bas, à gauche et à droite. Cela vous permet de spécifier que vous souhaitez toujours que le contrôle soit relativement positionné dans le formulaire en fonction de la plus petite taille.

I.E: Définissez la propriété anchor sur Top, Bottom, Left, Right pour que le bord supérieur, inférieur, gauche et droit du contrôle soit toujours à la même distance de chaque bord, quelle que soit la taille du parent.

Si vous souhaitez que le contrôle soit placé à une distance spécifique de chaque bord de la surface de contrôle, utilisez Anchor Haut, Bas, Gauche, Droite

si vous souhaitez que le contrôle haut et bord gauche soit verrouillé à 8 pixels du bord supérieur et gauche du parent, définissez la propriété Anchor sur Top, le contrôle de gauche ne sera jamais redimensionné, il restera toujours relativement positionné à 8,8.

0
Dean

Vous utilisez les propriétés Dock et Anchor pour contrôler le redimensionnement d'un contrôle de composant lorsque son parent/conteneur est redimensionné.

Pour qu'un contrôle remplisse son conteneur, il suffit de

theControl.Dock = System.Windows.Forms.DockStyle.Fill

Pour conserver certaines marges, définissez la propriété Anchor

theControl.Anchor = CType((System.Windows.Forms.AnchorStyles.Top _
    Or System.Windows.Forms.AnchorStyles.Bottom _
    Or System.Windows.Forms.AnchorStyles.Left _
    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)

Vous pouvez également définir ces propriétés dans la fenêtre de l'outil Propriété.

0
Richard Dong

Cliquez sur tab 1 ou tab 2. Ensuite, dans le Property Tab, recherchez la propriété Dock. Ensuite, sélectionnez celui au milieu ou tapez plein.

Ou

Vous pouvez rechercher Anchor et sélectionner le bottom tab, le top tag, le right tag et le left tag.

J'espère que cela a aidé!

0
kevin

Vous pouvez utiliser le code suivant dans l'événement de chargement de formulaire ...

TabControl1.Dock = DockStyle.Fill
ListBox1.Dock = DockStyle.Fill

Cela redimensionnera les contrôles lorsque le formulaire est également redimensionné.

Vous pouvez également utiliser le panneau tableLayout ou la propriété d'ancrage des contrôles pour obtenir le même résultat.

J'espère que cela t'aides!

0
tejasgupta