AZ>1) Свойства своих классов в дизайнере
AZ>Есть мой контрол (MyControl) — лейбл имеющий рамку и текст которые умеют моргать и менять цвета, наследованный от UserControl, который использует мои классы не наследованные ни от чего (MyText, MyBorder) — они собственно и умеют моргать и менять цвета
AZ> Так вот — как заставить дизайнер отображать и изменять свойства MyText и MyBorder, чтобы они выбирались в ToolBox'е как выпадающий список свойств, а не определяя свойства этих классов как свойства MyControl?
Не понятно что куда должно выпадать. Можно например прицепить к Mytext и MyBorder атрибут ExpandableObjectConverter.
[TypeConverter(typeof(ExpandableObjectConverter))]
public class MyBorder
{
...
}
Тогда свойство MyBorder будет распахиваться в дизайнере как например Font.
AZ>2) Групповое переименование контролов в дизайнере
AZ>Есть тот же MyControl. На форме их может быть очень много (20-60 штук), разделенных на группы по именам (т.е. MyControl_A1..n, MyControl_B1..n, MyControl_C1..n) и они кидаются на форму вручную (в основном Ctrl+C, Ctrl+V)
AZ>Как сделать так, чтобы можно было переименовать группу контролов (MyControl1..n) -> (MyControl_A1..n), или, если можно написать, чтобы при копировании контрола копировались не только свойства но и имя его, тока индекс новый?
Посмотрите метод InitializeNewComponent класса ComponentDesigner. Еще есть класс DesignerSurface и у него ResolveName.
Хотя тут надо определиться с вопросом "а зачем это надо" и тогда искать решения.
AZ>3) Индексация контролов
AZ>Как получить доступ к одному контролу из группы (могут быть в разных контейнерах типа панель) по индексу?
AZ>Придумал только вариант выделения индекса из имени контрола:
Возможно подойдет IExtenderProvider.