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
Définissez AllowDrop sur false.
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);
}
}
}
Et comment puis-je remplacer la méthode Controls.Add? – Lalit
Désolé, cela ne fonctionnera pas. :( – Lalit
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
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