Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / все контролы DevExpress.XtraLayout.LayoutControl / 6 сообщений из 6, страница 1 из 1
15.05.2018, 09:10
    #39644773
vah
vah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
все контролы DevExpress.XtraLayout.LayoutControl
Скажите пожалуйста,
как программно (в ToList например) можно получить все контролы, которые были накиданы в DevExpress.XtraLayout.LayoutControl?
(включая LayoutControlGroup,XtraTabControl ...)

Заранее благодарен.
...
Рейтинг: 0 / 0
15.05.2018, 11:22
    #39644833
vah
vah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
все контролы DevExpress.XtraLayout.LayoutControl
vah,

нашел такой вариант

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
        public bool ABC(Control AOwner)
        {
            bool result = false;

            // бежим по всем компонентам формы
            for (int i = 0; i < AOwner.Controls.Count; i++)
            {
                string aName;
                aName = AOwner.Controls[i].Name; // имя компонента

                if (!(aName == ""))
                {
                    MessageBox.Show("Компонент найден " + aName);
                    result = true;
                    //break;
                }

                if (AOwner.Controls[i].Controls.Count > 0)
                {
                    ABC(AOwner.Controls[i]); //рекурсия										
                }
            }
            return result;
        }




все ли тут нормуль?
...
Рейтинг: 0 / 0
15.05.2018, 12:32
    #39644916
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
все контролы DevExpress.XtraLayout.LayoutControl
vahvah,

нашел такой вариант

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
        public bool ABC(Control AOwner)
        {
            bool result = false;

            // бежим по всем компонентам формы
            for (int i = 0; i < AOwner.Controls.Count; i++)
            {
                string aName;
                aName = AOwner.Controls[i].Name; // имя компонента

                if (!(aName == ""))
                {
                    MessageBox.Show("Компонент найден " + aName);
                    result = true;
                    //break;
                }

                if (AOwner.Controls[i].Controls.Count > 0)
                {
                    ABC(AOwner.Controls[i]); //рекурсия										
                }
            }
            return result;
        }


все ли тут нормуль?
работать будет, наверное :) вот вам вариант компактнее, написанный на коленке :)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
private static Control FindControl(Control control, string name)
{
    if (string.Equals(control.Name, name)) return control;
    foreach (Control child in control.Controls)
    {
        var result = FindControl(child, name);
        if (result != null) return result;
    }
    return null;
}
...
Рейтинг: 0 / 0
15.05.2018, 14:06
    #39645002
vah
vah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
все контролы DevExpress.XtraLayout.LayoutControl
Roman Mejtes,

Спасибо!
Интересно, а в Linq это можно сделать?
...
Рейтинг: 0 / 0
15.05.2018, 16:12
    #39645103
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
все контролы DevExpress.XtraLayout.LayoutControl
vah,

можно сделать extension метод, который дерево, развернет в плоский список IEnumerable<T>, а потом стандартными средствами Linq найти нужный элемент.
...
Рейтинг: 0 / 0
15.05.2018, 17:06
    #39645138
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
все контролы DevExpress.XtraLayout.LayoutControl
Roman Mejtes,

там все уже сделано
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / все контролы DevExpress.XtraLayout.LayoutControl / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]