|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - VB 2011 Массивов элементов больше нет? |
|
|
.NET - VB 2011 Массивов элементов больше нет?
|
Пользователь Сообщения: 79 |
Профиль | Отправить PM | Цитировать Раньше писал на ВБ6, а сейчас познаю 2011, и вот обнаружил что теперь нельзя делать массив из элементов. Тоесть нельзя создать кучу текстбоксов с одним именем но разными индексами, но как теперь обрабатывать их в цыклах?
У меня допустим 30 текстбоксов, потом мне надо инфу с них переписать в масив данных раньше это было типа такого For a=0 to 29 mass(a)=text(a).text next Как теперь осуществляются такие задачи? |
|
Отправлено: 22:13, 01-12-2011 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 00:39, 02-12-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать Ок, спс. Будем пробовать
Хотя, еще не попробовав возникают вопросы. 1 Цитата Delirium:
2 В какой последовательности будут обрабатывается текстбоксы 3 Я так понимаю этот код обрабатывает ВСЕ текст боксы на форме, а если мне нужны не все? Это нада помещать их в контейнер или как то так? |
|
Последний раз редактировалось TRAMPLE, 02-12-2011 в 20:11. Причина: Дополнение Отправлено: 20:07, 02-12-2011 | #3 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать Цитата TRAMPLE:
Цитата TRAMPLE:
Далее так: ArrayList mas = new ArrayList() Foreach(TextBox tbx in this.Controls) { if ((Boolean)tbx.Tag) { mas.Add(tbx.Text); } } |
||
------- Отправлено: 22:09, 02-12-2011 | #4 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать |
|
------- Отправлено: 09:42, 03-12-2011 | #5 |
Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать Цитата Delirium:
Ну типа там Текстбоксы идут в стиле (Адрес, ФИО, телефон, год рождения и тд). И должны по порядку вписывается в массив. Я думаю что они обрабатываются либо по мере их создания, либо по свойству TabIndex что было бы правильней, но увы не проверял пока. Вообще когда я начал вспоминать былое, я не нашел каких то кардинальных отличий по сравнению с ВБ6, ну в том плане что в принципе всеми теми способами или так сказать "тактиками" которыми я писал проги в ВБ6 можно было использовать и здесь. Это первое с чем я столкнулся, и смотрю что поменялось многое. А вот то что элементам больше нельзя задавать индексы, это все таки плохо ( |
|
Отправлено: 15:01, 03-12-2011 | #6 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать TRAMPLE, ты сам создаешь себе проблемы. Обработку данных в TextBox лучше все таки делать вручную, а не циклами. Да, это дольше, но это правильней. Несложно ведь создать массив и написать что то вроде такого:
string[10] mass; 1. При обработке ФИО - mass[0] = tbxFio.Text; 2. телефон mass[1] = tbxPhone.Text; И этот код ненамного длиннее кода с циклом, но это дает тебе полный контроль над данными и индексами в массиве. И встречный вопрос - а зачем вообще заносить это в массив? |
------- Отправлено: 16:50, 03-12-2011 | #7 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать TRAMPLE, В конце концов храните "индексы" (цифры) в Tag для массива, и в цикле определяйте Tag и записывайте значение в индекс массива...
|
------- Отправлено: 17:57, 03-12-2011 | #8 |
Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать Цитата Delirium:
If T(2) > 0 Then T(2) = T(2) - 1 ElseIf T(1) > 0 Then T(1) = T(1) - 1 T(2) = 59 ElseIf T(0) > 0 Then T(0) = T(0) - 1 T(1) = 59 T(2) = 59 Else FuckEND() End If Ну это только для времени, а мне надо еще годе, месяц, день. Вот такой вот бздык. Да, можно и без массива, но я ведь учусь ) Цитата LilLoco:
У меня даже была крейзи идея, назвать все текстбоксы типа (Box1, Box2, Box3, Box4...) И потом name = "box" For a=1 to 10 name=name & а . . . . name= "box" next a Дума суть понятна, типа приставляем "индекс" к имени текстбокса, ну это бред помоему ))) И насколько я помню, в ВБ6 нельзя было так делать, потому что нельзя чтобы переменная содержала имя элемента, в данном случае name.text не распознает. Тут как я понимаю можно, указав что это контрол и тд, но все равно бред... не грамотно все это ( |
||
Отправлено: 01:55, 04-12-2011 | #9 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать TRAMPLE, Я не предлагаю индексы хранить в имени TextBox`а . Почитайте повнимательнее. У каждого элемента, есть свойство Tag, в котором можно хранить все что душе угодно... Я и предлагал им воспользоваться...
|
------- Отправлено: 10:38, 04-12-2011 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
HDD - Load/unload cycle count. Всё больше и больше | 3..2..1... BOOM | Накопители (SSD, HDD, USB Flash) | 5 | 23-09-2021 15:45 | |
Интерфейс - [решено] нет элементов управления Media Player Classic в превью панели задач | petrov1993 | Microsoft Windows 7 | 16 | 03-03-2013 10:53 | |
Установка МФУ HP M1212 на Mandriva 2010-2011 / Rosa 2011 (проблемы) | buxar | Железо в Linux | 14 | 01-10-2012 20:17 | |
Взрывы в Метро и Аэропорту (29.03.2010) - (21.01.2011) - (11.04.2011) | samara1532 | Флейм | 90 | 14-04-2011 00:09 | |
VBA - [решено] Обработка массивов | Матвик | Программирование и базы данных | 12 | 24-02-2011 16:25 |
|