2013-09-22 2 views
0

Как я могу перечислить элементы элемента управления (например, или ListBox), которые не были унаследованы от родительского класса и принадлежат к собственной реализации элемента управления. Я попробовал обозреватель объектов, окно свойств и сам редактор кода, но все они перечисляют все члены.Список членов, которые не принадлежат родительскому классу

Этот вид информации может быть полезен в ряде сценариев. Одним из примеров является мой случай, когда я реализую команду ToolStripControlHost для управления TrackBar и хочу видеть, какие члены TrackBar мне нужно будет добавить в мой класс.

UPDATE: Вдохновленные @ второе предложение Aaronaught по ниже, я провел некоторое время, пытаясь создать VS2010 надстройки, которая прислушивается к курсору события изменения позиции, но это, кажется, слишком много для бедного программиста в меня.

ответ

1

Глядя на documentation поможет. Он определяет, какие элементы наследуются.

Если вам нужно сделать это с помощью кода (Отражение), укажите DeclaredOnly в BindingFlags из Type.GetMembers.

+0

Учитывая мое требование, я более склонен к решению на основе IDE. MSDN перечисляет ВСЕ элементы снова, как и другие 3 метода, о которых я упоминал в вопросе, так что это не поможет. Отражение кажется вариантом. Вероятно, я должен создать расширение Visual Studio, в котором перечислены члены идентификатора вокруг курсора. – dotNET

+0

@dotNET: Пожалуйста, прочитайте MSDN более внимательно. В нем говорится, какие члены наследуются. Я действительно не понимаю, зачем вам нужно это делать в Visual Studio, но не программно ... возможно, вам следует предоставить дополнительную информацию о проблеме, которую вы пытаетесь решить, возможно, есть другой/лучший способ. – Aaronaught

+0

Спасибо. Возможно, я не был достаточно ясен. Переход через MSDN для членов класса занимает много времени, потому что средний класс рамок будет иметь несколько десятков членов. И у меня нет проблем, если это может быть достигнуто программным путем; только то, что решение на основе IDE легко будет отображать все локальные члены идентификатора под курсором, поэтому мне не придется передавать его в макрос или что-то для каждого типа вручную. VS addin лучше всего подходит для этого, потому что он не только «программный», но и позволяет создать окно стыковки, которое будет обновляться «на лету», хотя я не мог его построить. – dotNET

Смежные вопросы