Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/41: Рейтинг темы: голосов - 41, средняя оценка - 4.78
1 / 1 / 0
Регистрация: 30.09.2009
Сообщений: 19

Поиск всех TextBox по всей форме

03.11.2009, 17:12. Показов 8319. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть форма с tabControl в tabControl еще множество tabPage, на каждом tabPage имеются textBox.
Необходимо пройтись по всей форме всем ее tabControl и tabPage и получить содержимого всех textBox

Пытаюсь это сделать так:

C#
1
2
3
4
5
6
7
8
foreach (Control C in Controls)
            {
                if (C is TextBox)
                {
                    Post_File.Add(С.Text);
                }
 
            }
но выборка упорно не хочет заходить на все tabPage
как реализовать сею выборку?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.11.2009, 17:12
Ответы с готовыми решениями:

Как организовать поиск по всей форме (по всем столбцам) на событие?
как организовать поиск по всей форме (по всем столбцам) на событие Change из form1 из поля Text9 выложите файл используя этот...

Как организовать поиск по всей форме (по всем столбцам) на событие Change
Помогите мне пожалуйста.... как организовать поиск по всей форме (по всем столбцам) на событие Change "Text15" и самое...

Поиск в БД на форме с TextBox
Здравствуйте, всем! Есть БД access с ФИО, адресом и др. данными... она прицеплена к форме с textBox-ами в c# - каждому textBox...

9
 Аватар для Humanitis
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
03.11.2009, 17:34
C#
1
2
3
4
5
var result=from tabControl in fr.Controls.OfType<TabControl>()
             select (from page in tabControl.TabPages.Cast<TabPage>()
                        select 
                         (from textBoxe in page.Controls.OfType<TextBox>()
                              select textBoxe.Text));
1
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
03.11.2009, 17:34
AndryD,
надо рекурсивно шариться по Controls у каждого элемента

на псевдо-коде примерно так:
C#
1
2
3
4
void Find(Control c)
{
  foreach (ctrl...) { if (TextBox) { делаем_действие(); } Find(ctrl); }
}
1
1 / 1 / 0
Регистрация: 30.09.2009
Сообщений: 19
04.11.2009, 10:31  [ТС]
А сделал я так....

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
25
26
27
28
foreach (Control c in Controls)
            {
                foreach (Control c1 in c.Controls)
                {
                    foreach (Control c2 in c1.Controls)
                    {
                        foreach (Control c3 in c2.Controls)
                        {
                            foreach (Control c4 in c3.Controls)
                            {
                                foreach (Control c5 in c4.Controls)
                                {
                                    foreach (Control c6 in c5.Controls)
                                    {
                                        if (c6== TextBox) MyMetod(c6);
                                    }
                                    if (c5== TextBox) MyMetod(c5);
                                }
                                if (c4== TextBox) MyMetod(c4);
                            }
                            if (c3== TextBox) MyMetod(c3);
                        }
                        if (c2== TextBox) MyMetod(c2);
                    }
                    if (c1== TextBox) MyMetod(c1);
                }
                if (c== TextBox) MyMetod(c);
            }
Таким обазом удалось перелопатить все Controls
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
04.11.2009, 10:35
AndryD,
ж0стко, но работать тоже будет. ((Ж
А что это за проверка такая странная: if (c== TextBox)
наверное, c is TextBox?
1
1 / 1 / 0
Регистрация: 30.09.2009
Сообщений: 19
04.11.2009, 11:28  [ТС]
Rififi,
я обшибся, руками просто вбивал... там --> c is TextBox
0
)))
 Аватар для aleks_pilipenko
610 / 423 / 55
Регистрация: 31.12.2009
Сообщений: 2,334
Записей в блоге: 3
25.03.2011, 10:59
искал почти тоже самое, кое-что нашел и упростил, получилось так:
C#
1
2
3
4
5
6
7
        private void ggggToolStripMenuItem_Click(object sender, EventArgs e)
        { Rec(this); }
        private void Rec(Control c)
        {
            foreach (Control c1 in c.Controls)
            { if (c1.Controls.Count > 0){Rec(c1);}}
        }
Вообщем, если в нужном месте поставить проверку на текстбох, то найдет все...
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
25.03.2011, 11:12
не проверял, но можно попробовать так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public List<T> GetControls<T>(Control control)
{
    List<T> control_list = new List<T>();
    foreach (Conrol c in control.Controls)
    {
        if (c is T)
        {
            control_list.Add(c);
            control_list.AddRange(GetControls<T>(c));
        }
    }
    return control_list;
}
0
)))
 Аватар для aleks_pilipenko
610 / 423 / 55
Регистрация: 31.12.2009
Сообщений: 2,334
Записей в блоге: 3
25.03.2011, 12:09
Непонятно как пользоваться структурой: public List<T> GetControls<T>(Control control)

Если можно скиньте действующий проект..
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
27.03.2011, 11:28
Проекта нет, я его писал прямо на форуме.
а пользоваться просто

C#
1
2
3
List<Buttom> list = GetControls<Button>(this.tabControl1);
// or
List<TextBox> list = GetControls<TextBox>(this.tabControl1);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2011, 11:28
Помогаю со студенческими работами здесь

Требовать заполнения всех TextBox на форме
Здравствуйте! Подскажите, пожалуйста. Есть приложение windows forms. На форме расположены четыре TextBox (IPTextBox1, IPTextBox2,...

Проверка заполнения всех textbox на форме
Мне нужно проверить заполнены ли все textbox на форме. Если да то форму нужно закрыть, а если нет - то показать соответствующее сообщение!

Назначить TextChanged и TextPress для всех TextBox на форме
Добрый день. Есть форма, на ней несколько GroupBox'ов, на которых множество TextBox'ов. Вбили значения, нажали кнопочку - посчитали....

Поиск в datagridview через любой textbox на форме
Здравствуйте! Как осуществить поиск через любой textbox на форме и что бы по нажатию на кнопку &quot;Поиск&quot; находилось именно то самое...

Выделение всей троки в TextBox
Всем привет! Нужна ваша помощь по Visual Basic 6 В форме имеется textbox1 и textbox2. Второй не виден и содержит по строчно...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru