Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
20 / 19 / 1
Регистрация: 20.10.2009
Сообщений: 103
1

Коллекция textbox

20.05.2011, 12:00. Показов 4491. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как я могу получить массив в котором будут все текстбоксы формы ?
что бы можно было потом их заполнять как элементы массива ?

Добавлено через 32 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
int index=0;
foreach (Control crl in this.Controls)
            {
             
                if (crl is TextBox)
                {
                    arrText[index] = crl as TextBox;
                    arrText[index].Text = set[index];
                   index++;
                }
            }
Данный код работает но заполняет их не попорядку... а нужно что бы тексбоксу1 присвоилось значение из set[1]

Добавлено через 5 минут
пока тупо поменял местами текстбоксы... но это больно грубый способ... хотелось бы программный..

Добавлено через 1 минуту
в таком варианте текст боксы заполняются 6 7 8 9 10 5 4 3 2 1 О_о
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2011, 12:00
Ответы с готовыми решениями:

Коллекция List<T> возвращает 0
Доброе утро! public static List&lt;string&gt; GetFileNameModePack(string url) { var list = new...

TreeView и коллекция моего класса
Добрый день. Предположим существует класс. class S { string name; //ноды верхнего уровня...

BindingSource и коллекция собственных классов
Раньше когда использовал DataTable в качестве свойства DataSource у BindingSource работала...

Коллекция значений одного столбца в datagridview
Здравствуйте, нужно в цикле foreach перебрать все значения одного столбца в datagridview. foreach...

9
615 / 539 / 115
Регистрация: 24.03.2011
Сообщений: 576
20.05.2011, 12:01 2
Например так:
C#
1
2
3
4
5
6
7
        List<TextBox> tb = new List<TextBox>();
 
        void alltexbox()
        {
            foreach (Control ctl in this.Controls)
                if (ctl is TextBox)tb.Add((TextBox)ctl);
        }
Первый элемент списка tb это последний добавленный на форму TextBox

Не обновил страницу.
0
20 / 19 / 1
Регистрация: 20.10.2009
Сообщений: 103
20.05.2011, 12:11  [ТС] 3
По другому ни как ?
Если я хочу получить доступ к 8 текст боксу из 18 ? Мне их все перебирать и брать десятый с конца ?
0
615 / 539 / 115
Регистрация: 24.03.2011
Сообщений: 576
20.05.2011, 12:25 4
Можно еще сделать так: добавлять на форму последовательно textbox т.е. сначала textbox1 затем textbox2, textbox3 и тд, так чтобы сохранить последовательность добавления с именами, последним добавленным был textboxN. Далее "найти их все".
И обращаться таким образом: tb[tb.Count - 1 - n] где n - интересующий вас textbox.
0
20 / 19 / 1
Регистрация: 20.10.2009
Сообщений: 103
20.05.2011, 12:27  [ТС] 5
Не катит... По форме 18 текстбоксов со своими настройками и параметрами... и теперь придется их все переделывать ???
0
615 / 539 / 115
Регистрация: 24.03.2011
Сообщений: 576
20.05.2011, 12:51 6
Еще можно так:
Изменить у каждого textbox свойство Tag таким образом чтобы Tag был равен номеру которому он бы соответствовал в дальнейшем заполнении (т.е если вы хотите чтобы textbox8 был под номером 8 то присвойте ему, Tag = 8) далее создайте dictionary:
C#
1
Dictionary<int, TextBox> tb = new Dictionary<int, TextBox>();
int - будет типом вашего ключа, по которому вы будете обращаться к textbox:
C#
1
2
3
            foreach (Control ctl in this.Controls)
                if (ctl is TextBox)
                    tb.Add(Convert.ToInt32(ctl.Tag), (TextBox)ctl);
Обращение ко 2 textbox:
tb[2].Text
0
20 / 19 / 1
Регистрация: 20.10.2009
Сообщений: 103
20.05.2011, 13:02  [ТС] 7
Вот это уже более похоже на то что надо а я и не подумал что Tag можно так использовать =)
0
мастер топоров
916 / 741 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
20.05.2011, 13:50 8
shadowmaster63, если у вас контролы называются в виде textbox1, textBox18, тогда парсите название текстбокса и доставайте оттуда порядковый индекс текущего текстбокса
1
195 / 187 / 15
Регистрация: 09.02.2011
Сообщений: 457
20.05.2011, 14:07 9
Действительно парсить имя(если оно одинаковое и содержит индекс) проще всего
VB.NET
1
2
3
4
5
6
7
For Each ctrl As Control In Me.Controls
            If TypeOf (ctrl) Is TextBox Then
                Dim index As Integer = 0
                Integer.TryParse(ctrl.Name.Substring(7), index)
                ctrl.Text = index
            End If
            Next
1
20 / 19 / 1
Регистрация: 20.10.2009
Сообщений: 103
20.05.2011, 14:49  [ТС] 10
Вот это я действительно прогнал )) спасибо всем
0
20.05.2011, 14:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2011, 14:49
Помогаю со студенческими работами здесь

Коллекция внос данных и поиск по ней
1) Создать форму с логин, пароль и проверкой( сделал) 2) создать форму с 6 текстбоксами и...

Коллекция List отобразить в ListView или ListBox
Доброго времени суток. Возникла проблема. У меня есть коллекция List куда записываются...

Не сохраняется коллекция List<> при сериализации в JSON
Добрый день. Возникла проблема во время сериализации в формате JSON. Имеется два класса Buses и...

Сравнение значений динамически заданных textBox, и отображение текста в многострочном Textbox
Часть первая. Дано: динамически создаваемые TextBox'ы TextBox tb = new TextBox; for (int i=0...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru