Вставка одной коллекции в несколько комбо

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

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

Severus_Snape
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 11
Зарегистрирован: 04.02.2009 (Ср) 17:12

Вставка одной коллекции в несколько комбо

Сообщение Severus_Snape » 04.02.2009 (Ср) 17:24

Здравствуйте! Вопрос такой. На форме есть несколько combobox'ов, в них должна быть одна коллекция. Имена у элементов отличаются только окончанием - combo1, combo2, combo3... Я так понял, что нужно сделать цикл и как-бы обойти эти боксы, вставляя в них элементы из коллекции. Но как обратиться к элементам - толком не знаю.
Пробовал так: Me.GroupBox1.Controls.Item(index)... но текст, видимость и прочие свойства изменить могу, а вот свойства Items, которое есть, если обращаться как Combobox1.Items - нету. Чувствую хожу около, но что-то упускаю.
Подскажите как єто сделать?

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

Re: Вставка одной коллекции в несколько комбо

Сообщение Nord777 » 04.02.2009 (Ср) 19:32

Пробовал так: Me.GroupBox1.Controls.Item(index)...
Для чего тебе такой способ доступа с комбобоксам? Ипользуй ComboBox1.Items
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Severus_Snape
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 11
Зарегистрирован: 04.02.2009 (Ср) 17:12

Re: Вставка одной коллекции в несколько комбо

Сообщение Severus_Snape » 04.02.2009 (Ср) 20:35

Так ведь я пишу: у меня несколько комбоксов. А может быть еще больше, т.к. прога пока незакончена. Писать для каждого:
ComboBox1.Items = ...
ComboBox2.Items = ...
ComboBox3.Items = ...
не рационально. В PHP и во Флеше, знаю, используются для этого составные имена. А вот в VB я такого найти не могу. :?:

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Вставка одной коллекции в несколько комбо

Сообщение dr.MIG » 04.02.2009 (Ср) 21:10

Создавай массив элементов управления, добавляй их на форму
Код: Выделить всё
Dim myComboBox(2) As ComboBox
myComboBox(0) = New ComboBox
myComboBox(1) = New ComboBox
myComboBox(2) = New ComboBox
Me.Controls.Add(myComboBox(0))
Me.Controls.Add(myComboBox(1))
Me.Controls.Add(myComboBox(2))

Затем обходи этот массив в цикле и делай с его элементами то, что тебе необходимо.
Salus populi suprema lex

Severus_Snape
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 11
Зарегистрирован: 04.02.2009 (Ср) 17:12

Re: Вставка одной коллекции в несколько комбо

Сообщение Severus_Snape » 04.02.2009 (Ср) 22:48

Реальный вариант. :D Спасибо. Хотя так все свойства придётся прописывать в коде...

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

Re: Вставка одной коллекции в несколько комбо

Сообщение MIT » 05.02.2009 (Чт) 1:11

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

1Steps
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 505
Зарегистрирован: 20.12.2006 (Ср) 0:50
Откуда: New York

Re: Вставка одной коллекции в несколько комбо

Сообщение 1Steps » 05.02.2009 (Чт) 2:33

Как вариант:

У ComboBox есть свойство Tag.
Присваивай этому свойству индекс комбобокса и обращайся к нему по индексу.
Удалена за ненадобностью.

Severus_Snape
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 11
Зарегистрирован: 04.02.2009 (Ср) 17:12

Re: Вставка одной коллекции в несколько комбо

Сообщение Severus_Snape » 05.02.2009 (Чт) 13:33

1Steps писал(а):Как вариант:

У ComboBox есть свойство Tag.
Присваивай этому свойству индекс комбобокса и обращайся к нему по индексу.

Обращаться по индексу, это я понимаю так - Me.GroupBox1.Controls.Item(index) ? Вообще-то уже пробовал...
И вообще мне кажется я не в те дебри завернул, т.к. там нет половины свойств комбокса.

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

Re: Вставка одной коллекции в несколько комбо

Сообщение Nord777 » 05.02.2009 (Чт) 18:05

тебе ЭТО надо?

Код: Выделить всё
  'Перебор всех комбобоксов на форме(во всех контейнерах)
  Sub ПереборВсехКомбобоксов(ByVal Container As System.Windows.Forms.Control.ControlCollection)
    Static Combo As ComboBox

    For Each Ctrl As Control In Container
      If TypeOf Ctrl Is ComboBox Then
        Combo = DirectCast(Ctrl, ComboBox)
        Combo.Items.Add(Combo.Name & "- Item 1")
        Combo.Items.Add(Combo.Name & "- Item 2")
      Else
        If Ctrl.Controls.Count <> 0 Then ПереборВсехКомбобоксов(Ctrl.Controls)
      End If
    Next

  End Sub

и вызов
Код: Выделить всё
    ПереборВсехКомбобоксов(Me.Controls)
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Severus_Snape
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 11
Зарегистрирован: 04.02.2009 (Ср) 17:12

Re: Вставка одной коллекции в несколько комбо

Сообщение Severus_Snape » 06.02.2009 (Пт) 0:37

Да не, мне такие извращения юыли не нужны. Доктор уже вылечил. :D


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25

    TopList