Используя WinForms, я кодирую пользовательский элемент управления Component, где я хотел бы, чтобы он мог отображать форму редактора конструктора, где я мог видеть список всех имен элементов управления в форме, где расположен компонент.
Я получил базовую механику пользовательского управления компонентом и поддержку редактора дизайнеров.Мой вопрос не об этом.
Допустим, у меня есть форма, в которой в IDE я помещаю компонент в область компонентов и несколько других элементов управления в форме.Теперь я вызываю редактор конструктора для компонента и отображаю список имен элементов управления.
Вот фрагмент кода:
internal class MyComponentEditor : UITypeEditor
{
public override object EditValue
(
ITypeDescriptorContext context,
IServiceProvider provider, object value
)
{
var instance = context.Instance as MyComponent;
var container = instance.Container;
var controls = container.Components.Cast<Control>;
var names = controls.Select (x => x.Name);
}
}
Здесь names переменная должна содержать имена всех элементов управления, но я получаю только имя типа!
Должно быть что-то очевидное ...;)