получить и установить значение элементов управления внутри панели, которая сама находится внутри панели tableLayout - PullRequest
0 голосов
/ 29 июня 2011

У меня есть TableLayoutPanel, внутри которого я динамически добавил Панели --- названия панелей:

Панель1, panel2 , , , , , , , , , , , Panel10

Теперь в этих динамически добавляемых панелях я динамически добавляю еще несколько элементов управления, таких как:

В Panel1: LabelDate1, LabelTime1, LabelPicAdder1, LinkLabel1

В Panel2: LabelDate2, LabelTime2, LabelPicAdder2, LinkLabel2 ......

Теперь, нажав кнопку, я хочу изменить значения элементов управления внутри Panel1, Panel2, но если я сделаю это:

foreach ( Control ctrl in this.tableLayoutPanel )

, я ТОЛЬКО могу получить переменную Panels в ctrl,

но как получить элементы управления внутри этих панелей в некоторую переменную и изменить свойство TEXT этих элементов управления .....

Я имею в виду, как мне получить элементы управления внутри панелей, которые сами находятся внутри таблицыLayoutPanel

TableLayoutPanel ----> Динамические панели -----------> Динамические элементы управления - как изменить свойство текста этого последнего объекта в иерархии

Ответы [ 2 ]

1 голос
/ 29 июня 2011

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

 public void GetAllControl(Control parent)
        {
            //Dosomething with parent like setting text or blah blah blah

            foreach (Control item in parent.Controls)
            {
                GetAllControl(parent);
            }
        }

и вызывайте этот цикл везде, где хотите

foreach ( Control ctrl in this.tableLayoutPanel )
{
GetAllControl(ctrl );
}
1 голос
/ 29 июня 2011

Вы добавили элемент управления на панели. Таким образом, вы должны перебрать каждую панель:

foreach ( Control panel in this.tableLayoutPanel ) {
    foreach ( Control ctrl in panel) {
        // etc..
    }
}

Вероятность того, что вы можете упростить свой код, сохраняя контрольные ссылки при их создании, а не пытаться найти их позже.

...