dotSITE
Учебник по C# Шаблоны проектирования Work in Murano Software.
новости материалы решения форумы группы настройки/о проекте

Автор: Шмачилин Павел
Тема: RE: Список компонентов формы
Дата: 12/13/2008 1:16:00 AM
Правильным будет путь такой: объявить в классе-наследнике формы метод, которй выполняет груповую операцию над всеми элементами формы. На пример так:
public delegate void Action(Component component);
public void ForeEachItems(Action action)
{
   foreach(Component comp in this.components.Components)
   action(comp);
}

Есть ещё один путь, на за такой обычно надо бить по рукам, если не отрывать их сразу: Можно на пример объёвить в наследнике формы свойство, или метод, возвращающий этот самый конейнер с компонентами:

public System.ComponentModel.IContainer
   GetComponents()
{
   return components;
}

public System.ComponentModel.IContainer
   FormComponents
{
   get { return components; }
}

А руки отрывать надо за то, что в последнем случае нарушается принцип инкапсуляции объекта. Это должно быть оправдано и трижды перепроверено потому, что именно это и вличёт те самые нередсказуемые моменты в поведении приложения.

>Столкнулся с проблеммой при получении списка компонентов на форме.
>
>Предыстория:
>Cписок компонет формы приватный...
>
>partial class Form1
>{ /// <summary>
>   /// Required designer variable.
>   /// </summary>
>private System.ComponentModel.IContainer components = null;
>//... - это выдержка кода формы, она генерится автоматом при созаднии
>//... формы в дизайн-тайм
>
>В итоге получается что у формы ты можешь спросить вот это
>foreach(Component comp in this.components.Components)
>{//~~~ ваш код}
>
>А если передать форму как параметр в функцию не принадлежащую этой форме то получить список компонент указанным выше способом неполучится.
>
>Внимание вопрос - что делать, как все-таки получить список компонент, а потом
>обратится к опредленным свойствам компонеты?
>
>





 .NET Framework/CLR -- Общие вопросы .NET
 Список компонентов формы Faust Faust    12/11/2008 11:27:00 PM
 RE: Список компонентов формы Шмачилин Павел    12/13/2008 1:16:00 AM
 RE[2]: Список компонентов формы Faust Faust    12/15/2008 11:37:00 AM
 RE[3]: Список компонентов формы Шмачилин Павел    12/16/2008 1:54:00 AM
 RE[4]: Список компонентов формы Faust Faust    12/16/2008 10:51:00 AM
 RE[5]: Список компонентов формы Шмачилин Павел    12/18/2008 7:54:00 PM
 RE[6]: Список компонентов формы Faust Faust    12/22/2008 1:40:00 PM


Контакт Реклама на сайте Спонсорам Веб мастерам

Лицензионное соглашение - © 2000-2012 dotSITE
Хостинг .NET предоставлен PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development