Работа с коллекцией в цикле

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Alexandrius
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 55
Зарегистрирован: 01.11.2009 (Вс) 14:09
Откуда: Украина

Работа с коллекцией в цикле

Сообщение Alexandrius » 05.01.2010 (Вт) 23:37

На форме куча всяких элементов управления. Как в цикле считать свойство Text у всех ComboBox? Проблема в том, что они создавались в перемешку с Button, Label, и прочим... И, теперь, в коллекции лежат вразброс.
Visual Basic 2008

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Работа с коллекцией в цикле

Сообщение MIT » 06.01.2010 (Ср) 1:28

Было много раз. Поиск выдаст несколько результатов, вот один из них.

Разве что тебе придется отбирать в цикле только определенный тип контрола, но и это тоже было, поищи.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Работа с коллекцией в цикле

Сообщение Nord777 » 06.01.2010 (Ср) 8:48

Код: Выделить всё
      For Each cb As ComboBox In Me.Controls.OfType(Of ComboBox)()
         ...
      Next
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Alexandrius
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 55
Зарегистрирован: 01.11.2009 (Вс) 14:09
Откуда: Украина

Re: Работа с коллекцией в цикле

Сообщение Alexandrius » 06.01.2010 (Ср) 15:39

Спасибо, в целом разобрался. Есть ещё непонятки с элементами, лежащими в TabControle, на разных TabPage. Как по ним пройтись в цикле?
Visual Basic 2008

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Работа с коллекцией в цикле

Сообщение MIT » 06.01.2010 (Ср) 15:44

Я тебе ссылку дал, почитай тему. Там речь идет про рекурсию - это то что надо.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Alexandrius
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 55
Зарегистрирован: 01.11.2009 (Вс) 14:09
Откуда: Украина

Re: Работа с коллекцией в цикле

Сообщение Alexandrius » 06.01.2010 (Ср) 19:24

Спасибо за ссылку.
Visual Basic 2008

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Работа с коллекцией в цикле

Сообщение Viper » 06.01.2010 (Ср) 20:29

Nord777 писал(а):
Код: Выделить всё
      For Each cb As ComboBox In Me.Controls.OfType(Of ComboBox)()
         ...
      Next
Не знал про такую фишку как OfType.
Весь мир матрица, а мы в нем потоки байтов!

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Работа с коллекцией в цикле

Сообщение viter.alex » 25.01.2010 (Пн) 10:51

Nord777 писал(а):
Код: Выделить всё
      For Each cb As ComboBox In Me.Controls.OfType(Of ComboBox)()
         ...
      Next

А у меня почему-то выдаёт "'OfType' is not a member of 'System.Windows.Forms.Control.ControlCollection'."
Лучше день потерять — потом за пять минут долететь!

Admiralisimys
Постоялец
Постоялец
 
Сообщения: 318
Зарегистрирован: 01.06.2009 (Пн) 10:26

Re: Работа с коллекцией в цикле

Сообщение Admiralisimys » 25.01.2010 (Пн) 11:31

viter.alex это фича .NET3.5
Код: Выделить всё
>%SystemRoot%\Microsoft.NET\Framework\v3.5\vbc ComboBoxSample.vb
Microsoft (R) Visual Basic Compiler version 9.0.30729.1
Copyright (c) Microsoft Corporation.  All rights reserved.

>ComboBoxSample.exe

>%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\vbc ComboBoxSample.vb
Microsoft (R) Visual Basic Compiler version 8.0.50727.3053
for Microsoft (R) .NET Framework version 2.0.50727.3053
Copyright (c) Microsoft Corporation.  All rights reserved.

\ComboBoxSample.vb(11) : error BC30456: 'OfType' is not a member
of 'System.Windows.Forms.Control.ControlCollection'.

      For Each cb As ComboBox In Me.Controls.OfType(Of ComboBox)()
                                 ~~~~~~~~~~~~~~~~~~


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 24

    TopList