2008-10-30 7 views
0

Comment puis-je restreindre l'ajout de contrôles dans le panneau dans les contrôles de fenêtre C#? Je dois limiter l'utilisateur pour ajouter des contrôles dans un panneau au moment de la conception.Limiter l'ajout de contrôle sur le panneau

Répondre

-1

Définissez AllowDrop sur false.

+0

Désolé, cela ne fonctionnera pas. :( – Lalit

+0

Désolé, vous devrez peut-être ajouter un peu plus de détails à votre problème, puis frère, d'où je suis assis qui devrait le faire.Location – Echostorm

+0

AllowDrop définit si nous pouvons glisser et déposer des données sur le contrôle. Mon problème est aussi simple que je l'ai dit: Je dois empêcher l'utilisateur d'ajouter des contrôles sur un panneau par glisser-déposer ou par code Neways merci – Lalit

1

Si vous souhaitez limiter les types de contrôles ou le nombre de contrôles que vous pouvez ajouter au panneau, vous pouvez créer votre propre sous-classe et vérifier le type de contrôle ou le nombre de contrôles dans une surcharge de la méthode Controls.Add. Edit: La surcharge de la méthode Controls.Add n'était pas aussi simple que je le pensais, mais vous pouvez créer une nouvelle classe qui étend la classe Panel et remplacer la méthode OnControlAdded pour vérifier le type de contrôle ajouté. Quelque chose comme ça devrait fonctionner:

class MyPanel : Panel 
{ 

    public MyPanel() 
    { } 

    protected override void OnControlAdded(ControlEventArgs e) 
    { 
     base.OnControlAdded(e); 

     if (!(e.Control is Label)) 
     { 
      MessageBox.Show("control " + e.Control.Name + " is not a label but a " + e.Control.GetType().ToString()); 
      Controls.Remove(e.Control); 
     } 

    } 

} 
+0

Et comment puis-je remplacer la méthode Controls.Add? – Lalit

Questions connexes