В настоящее время я построил collapseControl, который ведет себя подобно метке (relatedControlID) для управления состоянием свертывания элемента управления.
следующий контроль, который я хотел бы построить:
складная зона http://img692.imageshack.us/img692/3307/stackoverflowcollapseab.jpg
я думал о чем-то вроде:
поместите мой уже собранный collapsableControl и некоторые другие элементы управления (например, панель) вместе, чтобы получить зону collapsableArea.
первая попытка:
я попытался расширить панель и сделал следующее:
this.Parent.Controls.Add(collapsableControl);
но это дало мне: "неверный шаг жизненного цикла", "невозможно изменить", "nullReference", ... исключения
поэтому я дал ему еще одну попытку (что, я считаю, лучший выбор из-за отсутствия tagKey):
я расширил заполнитель и сделал следующее:
this.Controls.Add(collapsableControl);
this.Controls.Add(collapsablePanel);
это вызвало другие проблемы, такие как: я только хочу установить текст панели, стиль панели, ...
проводной!
есть ли у вас какие-либо решения для этого сценария?
редактирование:
я придумал другое решение:
другое решение http://img109.imageshack.us/img109/3307/stackoverflowcollapseab.jpg
«CollapsableArea» относится к типу «Control» и содержит 2 дополнительных личных свойства:
- "CollapsableControl"
- "Группа"
Я подумал, что этого будет достаточно, чтобы перенаправить метод получения CollapsableArea.Controls в CollapsableArea.Panel.Controls. в CollapsableArea.CreateChildControls () я инстанцирую и добавляю CollapsableControl и Panel к base.Controls и в CollapsableArea.RenderChildren () отображает эти 2
мои проблемы сейчас:
CollapsableControl получит идентификатор клиента (без установки идентификатора) - панель не будет
Визуализация CollapsableControl завершится ошибкой (или будет отключена), если панель содержит <%%> - теги
есть предложения?
редактирование:
я исправил поведение отсутствующего идентификатора - просто установите CollapsableControl.AssociatedControlID в Panel.ClientID ... но - при помещении <%%> в панель он не будет отображаться ?? !!