Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 05.09.2012
Сообщений: 4

Ссылка на компонент в панели свойств, с возможностью выбора на этапе разработки

20.11.2013, 05:49. Показов 1748. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Пишу свой компонент. Нужно, чтобы на этапе разработки в панели свойств можно было выбрать меню, которое будет закреплено за объектом.
По аналогии со свойством DataSource у компонента, DataGridView.
Как заставить VS искать все меню, что есть на форме и отображать их список в поле свойств?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.11.2013, 05:49
Ответы с готовыми решениями:

Компонент таблицы с возможностью выбора значений ячеек
Здравствуйте, подскажите пожалуйста такой элемент, который будет просто отображать таблицу, с возможностью выбора в ячейках варианта...

Существует ли какой-то инструмент сортировки свойств в XAML с возможностью выбора порядка сортировки
Если нету, то как такое можно реализовать? Ну например написать свой парсер XAML, который бы сортировал свойства. Можно было бы указать...

ищу DatePicker с временем, списком выбора месяца и возможностью смены месяца после выбора числа
Привет. Ищу хороший DatePicker с указанными функциям. Немного расшифрую, что от него нужно: 1) Возможность выбора времени (чч:мм) ...

1
0 / 0 / 1
Регистрация: 05.09.2012
Сообщений: 4
26.11.2013, 10:23  [ТС]
Лучший ответ Сообщение было отмечено gcc как решение

Решение

Если кто столкнется с подобной проблемой. Рекомендую книгу. П.Агуров "C#. Разработка компонентов в MS Visual Studio 2005/2008". Прочитал больше половины, чтоб понять, как работает режим разработки. (Нужные примеры в 9 главе).

У меня была задача: связывать меню и компонент на этапе разработки, через свойства.
Мой код.
1) В свойство своего контрола добавляем атрибут
C#
1
2
3
4
5
6
7
8
9
10
11
 public partial class TS : CBlinkControl
{
// код класса
// ...
        // Атрибуты указывают, что за редактор свойств
        // будет отвечать позьзовательский класс TSMenuSelectorEditor
        [Editor(typeof(TSMenuSelectorEditor), typeof(UITypeEditor))]
        [TypeConverterAttribute(typeof(ExpandableObjectConverter))]
        public TsMenu Menu
        { set; get; }
}
2) Создаем свой класс, чтобы студия понимала, что нужно отображать в свойствах
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    
public class TSMenuSelectorEditor : ObjectSelectorEditor
    {
        protected override void FillTreeWithData(Selector selector,
                ITypeDescriptorContext context, IServiceProvider provider)
        {
            base.FillTreeWithData(selector, context, provider);
 
            // Получаем доступ к сервису для поиска компонентов на форме 
            IReferenceService rs = (IReferenceService)provider.GetService(typeof(IReferenceService));
 
            // Массив найденных на форме компонентов
            object[] components = rs.GetReferences(typeof(TsMenu));
 
            // Создаем выпадающее меню со списком всех найденных компонентов 
            foreach (IComponent component in components)
            {
                selector.AddNode(component.Site.Name, (TsMenu)component.Site.Component, null);
            }
        }
    }
Если смысл атрибутов и интерфейсов не понятен, рекомендую все же почитать эту хорошую книгу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.11.2013, 10:23
Помогаю со студенческими работами здесь

Как сделать возможность выбора папки из каталога на этапе выполнения?
На вход поступает изображение, только - bmp. Можно написать самому полностью путь, можно открыв каталог папок найти на диске изображение,...

При установке Win7 на этапе выбора раздела на жестком диске они пропадают
Ноутбук asus x52j Устанавливаю windows 7 на этапе где можно разделить удалить форматировать облости на ЖД я делю неопределенную память...

Установка Windows 7 на моноблок Acer Aspire Z1-623 зависает на этапе выбора языка
Всем привет. купил новый моноблок Acer Aspire Z1-623. с досом. пытаюсь накатить на него семерку, однако после копирования файлов,...

Значение связанных свойств во время разработки
Связанные свойства в режиме разработки установлены в null. Из-за этого работать в конструкторе неудобно - искажается компоновка. Существует...

Ошибка на этапе выбора таблицы: Не удалось авт-ски создать команды обновления. You have a usable connection
Уважаемые форумчане, столкнулся с такой проблемой. Есть БД на MySQL и есть приложение на VS2017 C#. Когда я пытаюсь добавить БД (через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru