У меня есть элемент управления, необходимый для ограничения типов дочерних элементов управления, которые он может содержать во время разработки (перетаскивание нового элемента управления в существующий элемент управления в конструкторе форм) Я попытался сделать это, переопределив событие OnControlAdded:
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
Это похоже на работу, однако я получаю сообщение об ошибке из Visual Studio сразу после удаления элемента управления:
'child' не является дочерним контролем этого родителя.
Что это значит? Как я могу сделать это без ошибок?