Мне нужно переопределить Добавить метод свойства «Controls» myControl, который расширен с панели управления окнами. Для этого я расширил класс ControlCollection в MyControlCollection, где я переопределяю его метод Add. Теперь я объявил свойство Controls типа MyControlCollection, чтобы скрыть свойство Controls панели. Когда я получаю доступ к this.Controls.Add (control), он ссылается на метод override Add. Но если я перетаскиваю элемент управления myControl и выбрасывает его, это метод Add-метода базового типа. Может ли любой орган предложить причину и средство для решения этой проблемы? Заранее спасибо.Свойство Overriding Controls панели в C#
ответ
Причина в том, что дизайнер вызывает Control.Controls вместо доступа к вашей отдельной коллекции. Честно говоря, ваше решение звучит так, будто ему суждено вызвать проблемы - обычно скрываются члены.
Чего вы пытаетесь достичь именно? Не похоже, что есть приятное событие, чтобы подключиться к ControlCollection
, но может возникнуть другой способ решения проблемы.
EDIT: Я только что видел, что Control
имеет событие ControlAdded
- вам будет достаточно подписки на это?
Вы можете вместо этого переопределить функцию CreateControlCollection и вернуть экземпляр класса по вашему выбору, который наследует System.Web.UI.ControlCollection. Удалите свойство Controls из своего класса, вам не нужно переопределять или скрывать оригинальную реализацию.
О, хорошо, я не знал об этом. Я думаю, что по-прежнему пытаюсь не требовать моего собственного ControlCollection, если это возможно, но это приятно знать, что это можно сделать :) – 2008-10-24 12:59:36
На самом деле мне нужно ограничить добавление элементов управления в свой элемент управления, если некоторые флаги верны. Я использовал это событие ControlAdded, но он добавил только проблемы. ControlAdded срабатывает только после добавления этого элемента управления в родительский элемент в местоположении 0, 0. После поднятия этого события он перемещает элемент управления в соответствии с положением мыши во время прокрутки. Если я удаляю этот новый элемент управления из родительского элемента в случае исключения EventDandler ControlAdded.
- 1. Overriding Form.Text свойство
- 2. C# Lock WinForm Controls
- 3. Clone Controls - C# (Winform)
- 4. C# Boolean Overriding
- 5. overriding push_back C++
- 6. Silverlight Xaml Overriding IsEnabled Свойство управления
- 7. C# Trouble instanciating controls
- 8. C# WPF Dragging Controls
- 9. dinamcally add controls C#
- 10. Метод Overriding-C# vs java
- 11. Метод Overriding in Objective-C
- 12. Confused with Overriding in C++
- 13. Help With Overriding C# .NET
- 14. overriding «virtual void» C++ error
- 15. Связывание в User Controls
- 16. overriding equals() vs overriding compareTo()
- 17. C# .Net ASP.Net Data Controls
- 18. Overriding (cast)
- 19. Loop controls внутри функции в c
- 20. Java overriding унаследованная строка
- 21. Свойство изменения управления в панели обновления
- 22. WinForm Controls + Transparency
- 23. Пропустить свойство CSS динамически из панели панели
- 24. breezejs: overriding displayname
- 25. Свойство привязки объекта уровня дочернего уровня в datagridview/controls в приложении C# winforms
- 26. Android - PhoneGap Native Controls
- 27. Overriding ArrayList
- 28. Loop through UpdatePanel Controls
- 29. JPanel overriding revalidate()
- 30. Перечислите Form Controls
Мне нужно ограничить добавление элементов управления в myControl на основе некоторого свойства. ControlAdded срабатывает после добавления нового элемента управления в родительский файл в местоположении 0,0. после чего он перемещает элемент управления в нужное положение. Если я удаляю этот новый элемент управления из родителя в EventHandler ControlAdded, возникает исключение. – Lalit 2008-10-24 13:15:53