Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 13.04.2017
Сообщений: 7
1

Выбор всех элементов формы определенного вида

13.04.2017, 13:28. Показов 3212. Ответов 11
Метки нет (Все метки)

Здравствуйте! Необходимо выбрать все элементы определенного вида с формы (например, кнопки или эл-ты label), записать их в массив, далее применить к элементам этого массива одинаковый цвет текста. Как это можно реализовать?
Заранее спасибо!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2017, 13:28
Ответы с готовыми решениями:

Выбор определенного значения и удаление всех идентичных
Здравствуйте все! У меня такой вопрос: как используя запрос Query можно получить из базы имя и...

Выбор всех файлов (за исключением одного или нескольких) определенного расширения
При выполнении задачи в таск-менеджере для выбора в папке всех файлов определенного расширения надо...

Нахождение min и max элементов матрицы, создание матрицы определенного вида
1. дана матрица, где выше побочной диагонали (включая её саму) нули. сгенерировать матрицу...

Как получить ключи всех элементов определённого уровня ассоциативного многомерного массива?
Например, массив: Array( город1 => Array( склад1 => Array( яблоки => 45; бананы =>...

11
72 / 68 / 47
Регистрация: 02.12.2015
Сообщений: 870
Записей в блоге: 1
13.04.2017, 13:36 2
Цитата Сообщение от OlegBas Посмотреть сообщение
Необходимо выбрать все элементы определенного вида с формы
Например выбор panel:
C#
1
List<Panel> panelList = Controls.OfType<Panel>().ToList();
0
Модератор
Эксперт .NET
5819 / 4696 / 2940
Регистрация: 20.04.2015
Сообщений: 8,359
13.04.2017, 13:40 3
Цитата Сообщение от OlegBas Посмотреть сообщение
записать их в массив
C#
1
Button[] buttins = this.Controls.OfType<Button>().ToArray();
Цитата Сообщение от OlegBas Посмотреть сообщение
применить к элементам
можно и без массива:
C#
1
2
3
4
foreach (Button btn in this.Controls.OfType<Button>())
{
    btn.BackColor = Color.Red;
}
0
0 / 0 / 0
Регистрация: 13.04.2017
Сообщений: 7
14.04.2017, 17:29  [ТС] 4
Не работает!
Не применяет красный фон к кнопкам и ошибки никакой не выдает. Что делать?
0
Модератор
Эксперт .NET
5819 / 4696 / 2940
Регистрация: 20.04.2015
Сообщений: 8,359
14.04.2017, 17:36 5
OlegBas,
Если кнопки расположены в контейнере (панель, группбокс и т.п), то нужно указывать вместо this имя контейнера.
0
0 / 0 / 0
Регистрация: 13.04.2017
Сообщений: 7
14.04.2017, 17:38  [ТС] 6
А если кнопки расположены на форме (не в контейнере)?
0
Модератор
Эксперт .NET
5819 / 4696 / 2940
Регистрация: 20.04.2015
Сообщений: 8,359
14.04.2017, 18:05 7
Цитата Сообщение от OlegBas Посмотреть сообщение
А если кнопки расположены на форме (не в контейнере)?
Тогда см. сообщение #3
0
0 / 0 / 0
Регистрация: 13.04.2017
Сообщений: 7
14.04.2017, 19:29  [ТС] 8
Код сообщения #3 не дает никакого результата. Не знаю что делать
0
72 / 68 / 47
Регистрация: 02.12.2015
Сообщений: 870
Записей в блоге: 1
14.04.2017, 19:42 9
OlegBas, покажите ваш код? Ваши попытки?
0
0 / 0 / 0
Регистрация: 13.04.2017
Сообщений: 7
15.04.2017, 14:35  [ТС] 10
Не присваивает всем кнопкам текст dffdf
C#
1
2
3
4
foreach (Button btn in this.Controls.OfType<Button>())
            {
                btn.Text = "dffdf";
            }
Добавлено через 33 минуты
Получилось! Спасибо!
А если не известно, где находятся кнопки ( непосредственно на форме или в элементе tabpage), то как можно их выбрать все?

Добавлено через 17 часов 56 минут
А если не известно, где находятся кнопки ( непосредственно на форме или в элементе tabpage), то как можно их выбрать все?

Добавлено через 21 секунду
Даценд, А если не известно, где находятся кнопки ( непосредственно на форме или в элементе tabpage), то как можно их выбрать все?
0
72 / 68 / 47
Регистрация: 02.12.2015
Сообщений: 870
Записей в блоге: 1
15.04.2017, 15:31 11
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void button1_Click(object sender, EventArgs e)
        {
            // кнопки на форме
            var listButtons = this.Controls.OfType<Button>().ToList();
            // кнопки на первой странице tabControl1
            // если нужно искать во всех страницах, то циклом пройтись по свойству TabPages.
            var listButtonsTab = tabControl1.TabPages[0].Controls.OfType<Button>().ToList();
            listButtons.AddRange(listButtonsTab);
                        
            foreach(Button bt in listButtons)
            {
                bt.Text = "Кнопки";
            }
 
        }
0
101 / 105 / 62
Регистрация: 19.11.2015
Сообщений: 380
15.04.2017, 15:40 12
Можно еще сделать вот так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
var listButtons = this.Controls.OfType<Button>().ToList();
                    var listButtonsOfTabs = new List<Button>();
                    foreach (var tabControl in this.Controls.OfType<TabControl>().ToList())
                    {
                        foreach(var tab in tabControl.TabPages)
                        {
                            listButtonsOfTabs.AddRange(((TabPage)tab).Controls.OfType<Button>().ToList());
                        }
                    }
                    listButtons.AddRange(listButtonsOfTabs);
                    foreach (var button in listButtons)
                        button.Text = "Текст";
Изменит текст для всех кнопок на форме + со всех TabControl-ов и со всех TabPage-ев.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2017, 15:40

XML определенного вида
Помогите програмно создать следуюющую XML &lt;MainMenu&gt; &lt;MainMenuItem Text=&quot;Пользовательские...

Построить три вида фигуры. На месте вида спереди и вида слева совместить часть вида с частью разреза

Построить три вида фигуры. На месте вида спереди и вида слева совместить часть вида с частью разреза - AutoCAD
Меня уже совсем выносит. Правильно ли я делаю?.. Не могу представить нормально вид слева. Что делаю...

1с 8.2 Выбор всех элементов из полесписка
Всем Привет!!!!!!! У меня такой вопрос: Как выбрать все элементы списка значений из полесписка?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru