![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| granit1986 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 17.6.2008 Репутация: нет Всего: нет |
Как сделать массив из одинаковых элементов на форме, скажем элементов Label, чтобы можно было обращаться к ним по индексу?
|
|||
|
||||
| SpaceSpace |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: нет Всего: 10 |
Очен просто. делаеш массив Label, и помещаеш туда ссылки Label'ов,
а потом обращаешся к ним по индексу. в твоем вопросе уже есть ответ
Это сообщение отредактировал(а) SpaceSpace - 19.11.2008, 15:24 -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
|||
|
||||
| Dmitry1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 13.11.2008 Репутация: нет Всего: нет |
а зачем вообще такое может понадобиться?
|
|||
|
||||
| jorikdima |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 18.1.2008 Где: Там, где Зенит Репутация: нет Всего: нет |
панель как контейнер использовать.
|
|||
|
||||
| SpaceSpace |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: нет Всего: 10 |
а в панели разве нет своего внутреннего контейнера?
-------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
|||
|
||||
| gambit |
|
||||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 3 Всего: 40 |
Dmitry1, у тебя 50 textbox'ов на форме, тебе надо их все очистить, у тебя есть возможность
а можно
Пример корявый, но суть отражает. |
||||
|
|||||
| PashaPash |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 9 Всего: 49 |
gambit, а можно один раз написать свой FindControls<T>(Control parent, Predicate<T> p) с yield внутри. И больше никогда не заморачиваться с массивами контролов.
Вот примерно так:
Это сообщение отредактировал(а) PashaPash - 20.11.2008, 16:27 |
|||
|
||||
| gambit |
|
|||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 3 Всего: 40 |
PashaPash, да я не спорю, можно и файл открывать в 50 строчек. К чему лишний геморой?? Данная проблема встречаеться не так часто чтобы думать над ней, писать 30 строчек кода. ИМХО излишняя сложность, которая никому не нужна.
|
|||
|
||||
| PashaPash |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 9 Всего: 49 |
gambit, лишняя сложность - это вмето использования готовой коллекции контролов создавать еще одну. Пример с очисткой текстбоксов - это не только твой for в 3 строчки. Это еще и создание textbox[], ручное добавление в него и в Controls одновременно, и потом непонятная синхронизация двух коллекций, проблемы с утечками памяти. Как-то слишком у тебя гемморойно для очистки текстбоксов получается. IMHO пример не то чтобы "немножко кривоватый", он решает ту же проблему намного сложнее чем FindControls. И нифига не отвечает на вопрос "а зачем вообще такое может понадобиться".
|
|||
|
||||
| granit1986 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 17.6.2008 Репутация: нет Всего: нет |
я вот помню в Visual Basic 6 при копировании элемента и вставки на ту же форму, предлагалось создать массив этих элементов и ничего не надо было писать в коде. можно было легко обращаться по индексу (:
|
|||
|
||||
| granit1986 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 17.6.2008 Репутация: нет Всего: нет |
мда... так никто ничего и не сказал нужного, а между тем всё оказалось до банального просто ((:
Это сообщение отредактировал(а) granit1986 - 7.12.2008, 19:25 |
|||
|
||||
| EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: 1 Всего: 2 |
Да просто надо понимать что Button или еще какой-нить контрол - это класс, а класс - это тип данных, а над любым типом данных можно производить стандартные операции (создавать массив, перебирать и т.п.). Ну кончено смотря что понимать под стандартными операциями
|
|||
|
||||
| SpaceSpace |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: нет Всего: 10 |
granit1986,
внимательно читай что тебе говорят и правильно формулируй вопросы. -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
|||
|
||||
| L1729 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 6.3.2008 Репутация: нет Всего: нет |
SpaceSpace
помойму вопрос был задан вполне корректно, только вот вы решили с умничать в ответе, а теперь притензии к нему? не красиво так делать! |
|||
|
||||
| source777 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 3 Всего: 56 |
PashaPash тебе всё что нужно по этому вопросу сказал и стандартное решение привёл и даже объяснил почему твоё "до банального просто" использовать не стоит... единственное только пример использования он не привёл. Очистить все TextBox`ы внутри groupBox1 можно, например, такой строчкой:
где ForEach, ставший уже стандартом де-факто для таких случаев, есть расширяющий метод (помести в статический класс в области видимости)
Прелесть этого способа даже не в том, что очистку текстбоксов можно провернуть с помощью одной строки, а в том, что этот способ сработает для любого набора контролов, а твой только для массива, который ты захардкодил... Это сообщение отредактировал(а) source777 - 12.12.2008, 23:54 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||||
|
|||||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |