2009-07-27 2 views
0

Je suis en train de concevoir une interface utilisateur simple utilisant des winforms. Dans le concepteur, j'ai un panneau sur le formulaire et je voudrais ajouter un contrôle datagridview dans le panneau au moment de l'exécution et définir la propriété dock de la vue datagrid à 'Fill' afin qu'il remplisse le panneau.Comment ancrer un contrôle à l'intérieur d'un panneau lors de l'exécution sur des formulaires Windows?

Je me bats pour le faire et le code suivant ne fonctionne pas pour moi:

Dim MyDataGridview as New DataGridView() 
MyDataGridView.Dock = DockStyle.Fill 
Me.MyPanel.Controls.Add(MyDataGridview) 

Quelqu'un peut-il aider à me diriger dans la bonne direction?

Edit:

Désolé d'être vague - je ne reçois pas une erreur mais le datagridview est pas visible. Il est ajouté 'derrière' le panneau et j'ai donc essayé d'utiliser les méthodes .SendToBack() et .BringToFront() en pensant que le panneau masquait la vue de données, mais cela ne semble pas fonctionner non plus. Quoi qu'il en soit, il semble que le datagridview soit ajouté au formulaire mais ne soit pas ancré dans le panneau

+1

Pourriez-vous être un peu plus précis sur « ne fonctionne pas pour moi »? –

Répondre

1

En fait, votre code devrait fonctionner, mais vous réalisez que vous obtiendrez un rectangle gris sans colonnes etc?

Quoi qu'il en soit, ce qui suit devrait être un peu plus fiable:

Dim MyDataGridview as New DataGridView() 
Me.MyPanel.Controls.Add(MyDataGridview) 
MyDataGridView.Dock = DockStyle.Fill 
MyDataGridView.Visible = True 
1

Définissez la propriété Dock après l'ajout du DataGridView au panneau, puis appelez « BringToFront() » pour changer le Z-index.

Je pense que la partie Z-indice est ce qui fait l'affaire;)

0

Ce me arrivait, mais je l'avais oublié de non suspendre la logique de mise en page du conteneur après avoir ajouté le panneau :). Donc, tout ce que je avais besoin était:

Container.ResumeLayout() ' docking works now! 
0

Essayez ceci:

Dim MyDataGridview as New DataGridView() 
MyDataGridView.Parent = Me.MyPanel 
MyDataGridView.Dock = DockStyle.Fill 
MyDataGridView.Show 
Questions connexes