Я пытаюсь использовать настраиваемую функцию вкладки свойств элемента управления WinForms PropertyGrid, но она меня превзошла.Я специально пытаюсь использовать PropertyGrid во время выполнения для отображения свойств объекта, а не пытаться создать поддержку элемента управления во время разработки, хотя они, похоже, являются приложениями схожей технологии.
Этот вопрос вызывает у меня серьезную обеспокоенностьсмущенный.Я попытался следовать нескольким учебникам по этой теме, и ни один из них не пришел к какому-либо действительно твердому выводу.
Обзор литературы
http://msdn.microsoft.com/en-us/library/aa302334.aspx#vsnetpropbrow_topic05
Эта статьяинформирует читателя, что добавить вкладки свойств легко выполнимо и что пример кода находится во включенном проекте FunkyButton, который нигде не включен.
http://www.codeproject.com/KB/grid/PropertyGridExWinForms.aspx
Этот проект предлагает толькоспособ использования пользовательских вкладок свойств состоит в расширении функциональности сетки базовых свойств путем переопределения, например, частного метода GetService ().Я совершенно уверен, что это не требуется, и попытался использовать его информацию для создания поставщика услуг.Тем не менее, это убедило меня, что класс SelectedObject в сетке свойств требует, чтобы атрибут класса PropertyTabAttribute был назначен расширенному System.Windows.Forms.PropertyGridInternal.PropertiesTab, который я создал и использовал.
http://www.dacris.com/blog/2008/01/02/net-how-to-show-events-tab-in-a-property-grid/
В этой статье указывается, что сама сетка свойств требует добавления вкладки с помощью метода PropertyGrid.PropertyTabs.AddTabType ().Затем выясняется, что свойство Site в сетке свойств необходимо назначить, а затем самодовольно предлагает, чтобы я уже знал, как это сделать: «... вам нужно установить свойство Site в сетке для какого-либо дизайнерского сайта, который выЕсли у вас есть собственные дизайнеры, вы должны знать, как их получить. "
http://www.syncfusion.com/FAQ/windowsforms/faq_c83c.aspx#q913q
Начав писать этот вопрос, я нашел ссылку на эту короткую статью натема с включенным кодом.Этот проект в большей степени ориентирован на функциональность во время разработки, однако, когда я использовал экземпляр их объекта в совершенно необычной PropertyGrid, он обнаружил кнопку вкладки «Свойства» и их объект «Пользовательская вкладка».Я был в состоянии переключаться между связанными взглядами без особых усилий.Однако проект, кажется, предлагает теперь настраиваемые атрибуты, чтобы различать свойства между доступными представлениями.В этой статье предлагается, чтобы я игнорировал определения сайтов, специализированных PropertyGrids и поставщиков услуг и сосредоточился на самом отображаемом объекте.
Разочарованно, изменяя этот проект для более точного отражения моего приложения, я переместил сетку операционных свойств вСтраница вкладки элемента управления вкладкой, на которой она сломала возможность для сетки свойств отображать вкладку Свойства по умолчанию, что означало, что я мог переключаться на вкладку настраиваемых свойств, но никогда не возвращался.
Заключение
Я в полной растерянности.Я должен быть близко, но из всех путей, которые я пытался сделать этой работой, возможно, мой мозг просто зажжен.Что является ключом к тому, чтобы заставить работать вкладки свойств?Это:
- Определенное определение класса PropertyGrid.SelectedObject?
- Настройки самой сетки свойств?
- Все об определении пользовательской вкладки?
Работал ли последний описанный проект только потому, что SelectedObject унаследован от UserControl?Должен ли SelectedObject наследоваться от System.ComponentModel.Component?
Если кто-то может попытаться прояснить все это и предоставить максимально краткое описание того, как заставить его работать, я был бы очень признателен.
Большое спасибо.