J'ai un contrôle dont j'ai besoin pour restreindre les types de contrôles enfants qu'il peut contenir pendant la conception (en faisant glisser un nouveau contrôle sur un contrôle existant sur le concepteur de formulaires). J'ai essayé de le faire en remplaçant l'événement OnControlAdded:Comment supprimer un contrôle si ce n'est un type spécifique?
Protected Overrides Sub OnControlAdded(ByVal e As System.Windows.Forms.ControlEventArgs)
MyBase.OnControlAdded(e)
If e.Control.GetType() IsNot GetType(ExpandablePanel) Then
MsgBox("You can only add the ExpandablePanel control to the TaskPane.", MsgBoxStyle.Exclamation Or MsgBoxStyle.OkOnly, "TaskPane")
Controls.Remove(e.Control)
End If
End Sub
Cela semble fonctionner, mais je reçois un message d'erreur de Visual Studio immédiatement après le contrôle est supprimé:
« enfant » est pas un enfant le contrôle de ce parent.
Qu'est-ce que cela signifie? Comment puis-je accomplir cela sans erreurs?
+1 pour la CanParent, mais il dit encore "n'est pas un contrôle enfant". Il serait plus utile de pouvoir émettre un message "Vous ne pouvez pas héberger un X sur un Y" – smirkingman