2013-09-02 3 views
0

Я знаю, как выполнять итерацию с помощью элементов управления, но свойство «components» кажется недоступным. Я могу видеть их, когда я просматриваю объект во время выполнения, но я не знаю, как получить к ним доступ. Любая помощь будет оценена по достоинству.Проникнуть через компоненты в форме?

+0

Вы можете добавить вам код? – Tomzan

+0

Поле * components * (не свойство) доступно по умолчанию в любом классе Form, который был создан из шаблона элемента проекта. Посмотрите на файл Designer.cs формы. Обратите внимание, как он используется в методе Dispose(), просто используйте его таким же образом. –

+0

@Tomzan: какой код вы ожидаете увидеть? –

ответ

0

я обнаружил, что я мог бы использовать рефлексию, чтобы получить то, что я хотел, так как .components частное:

  Dim formType As Type = myForm.GetType() 
      Dim fieldInfo As Reflection.FieldInfo = formType.GetField("components", BindingFlags.Instance Or BindingFlags.NonPublic) 
      If fieldInfo IsNot Nothing Then 
       Dim parent As IContainer = DirectCast(fieldInfo.GetValue(myForm), IContainer) 
       If parent IsNot Nothing Then 
        For Each comp As Component In parent.Components 

        Next 
       End If 
      End If 
Смежные вопросы