2009-07-09 7 views
3

J'ai un formulaire Windows avec une taille par défaut de 1100x400, et j'ai un contrôle DataGridView sur elle ancrée à Top, Left, Bottom, Right.Comment est-ce que je fais un ré-ancrage de contrôle enfant à son Form parent quand il a été coupé sur un petit écran de résolution?

Redimensionner le formulaire sur un écran avec une résolution supérieure à 1100x400 fonctionne correctement, et l'ancrage fonctionne bien, en redimensionnant le contrôle DataGridView comme prévu.

Lorsque je lance le formulaire sur un écran avec la résolution 800x600, le formulaire est coupé et fait pour correspondre au 800x600. Le DataGridView est coupé, et ne peut pas être vu entièrement - il saigne de la forme vers la droite, donc il ne respecte pas la bonne ancre. Redimensionner le formulaire dans cette situation ne respecte pas les paramètres d'ancrage pour une raison quelconque: le contrôle DataGridView ne redimensionne pas lorsque le formulaire est redimensionné.

Existe-t-il une méthode par programme (sur un événement de redimensionnement ou quelque chose) pour forcer le contrôle enfant DataGridView à ancrer aux côtés du formulaire?

J'ai déjà essayé d'appeler un PerformLayout et Refresh dans l'événement de redimensionnement du formulaire mais c'est plutôt redondant, n'est-ce pas?

+0

>> Je l'ai déjà essayé d'appeler un PerformLayout et rafraîchir dans le cas de redimensionnement du formulaire mais il est plutôt redondant, n'est-ce pas? << - Cela a-t-il fonctionné? –

+0

On dirait une question idiote, mais y a-t-il quelque chose de prévu pour la largeur minimale du cotrol? (Je ne suis pas dans ma boîte de dev, donc je ne peux pas vérifier si c'est quelque chose que vous pouvez faire pour un DataGridView ou pas, alors ignorez moi si je pense à un framework d'interface utilisateur différent.) –

Répondre

0

Je vous recommande de jouer avec MinimumSize/MaximumSize de la forme et contrôle

Nous fixons généralement MinimumSize pour la forme et les contrôles à la valeur, quand on peut voir au moins petite partie de chaque contrôle. Comme pour MaximumSize pour le formulaire - Je vous recommande d'essayer de définir cette valeur sur Form_Load pour être à la taille, lorsque vous ne pouvez pas faire un travail utile avec les contrôles

moins ou égale résolution de l'écran ou de la zone de travail en cours (ce qui est la zone d'écran sans taskbars, fenêtres amarrés, etc.)

see 
    Screen.PrimaryScreen.Bounds 
    Screen.PrimaryScreen.WorkingArea 
Questions connexes