Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: combobox'ы Добавлено: 23.04.09 12:25  

Автор вопроса:  ilang-ilang | ICQ: 355115304 
здрасте! такой вот вопрос:
на форме имеется 16 комбобоксов. как их можно заполнить используя цикл? а именно интересует формат обращения к ним. заранее огромное спасибо

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 maza_____



ICQ: 9968842 

Вопросов: 40
Ответов: 337
 Web-сайт: vkontakte.ru/id25563295 добавляйтесь в друзья))
 Профиль | | #1
Добавлено: 23.04.09 14:13
  1. ComboBox1.Items.Add("новый пукт")

Ответить

Номер ответа: 2
Автор ответа:
 Kardinal



ICQ: 360041513 

Вопросов: 1
Ответов: 164
 Web-сайт: kg7.ru
 Профиль | | #2
Добавлено: 23.04.09 18:33
Если лень прописывать для каждого можно сделать их массив или перебрать через for each.

Ответить

Номер ответа: 3
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #3 Добавлено: 23.04.09 18:42
  1. For each cb in Control
  2.   If cb.Name Like "Combobox" Then  'определяем именно комбо, кажется еще было как определить по типу, но так не помню :(
  3.     cb.Value="Что-нибудь"
  4.   End If
  5. Next cb

Ответить

Номер ответа: 4
Автор ответа:
 ilang-ilang



ICQ: 355115304 

Вопросов: 5
Ответов: 16
 Профиль | | #4 Добавлено: 24.04.09 10:49
спасибо конечно, но именно как это сделать мне и неизвестно, а именно как закинуть комбобоксы в массив, чтобы потом перебирать через for each

Ответить

Номер ответа: 5
Автор ответа:
 ilang-ilang



ICQ: 355115304 

Вопросов: 5
Ответов: 16
 Профиль | | #5 Добавлено: 24.04.09 10:59
Jasmin, а что означает первая строчка? не нужно больше нигде объявлять cb? а то что-то у меня не хочет работать (вообще пишет Type mismatch)

Ответить

Номер ответа: 6
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #6 Добавлено: 24.04.09 13:34
For each cb in Control Это цикл, который выполняеться для каждого cb из Control и заканчиваеться он на Next cb.
Вот тоже пример привёл с создание комбобоксов и заполнением их при загрузке формы.
  1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.         Dim i As Integer
  3.         Dim j As Integer
  4.         For i = 0 To 14
  5.             Dim com As ComboBox
  6.             com = New ComboBox
  7.             com.Name = "Com" & i.ToString
  8.             com.Size = New Size(181, 21)
  9.             com.Left = 14
  10.             com.Top = (1 + i) * 30
  11.             com.Visible = True
  12.             For j = 1 To 10
  13.                 com.Items.Add("Число " & j * (i + 1))
  14.             Next
  15.             Me.Controls.Add(com)
  16.         Next

Ответить

Номер ответа: 7
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #7 Добавлено: 24.04.09 18:23
В Control содержится информация о всех элементах (название, тип, количество) на листе/форме. Вот их мы и перебираем. Явно объявить можно, а можно и не объявлять. :)

Ответить

Номер ответа: 8
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #8 Добавлено: 24.04.09 19:06
А можно ещё и так сделать, даже событие для массива можно прописать общее при желании :)
  1.   Dim mas(0 To 14) As ComboBox
  2.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  3.         Dim i As Integer
  4.         For i = 0 To 14
  5.             mas(i) = New ComboBox
  6.             mas(i).Name = "Com" & i.ToString
  7.             mas(i).Size = New Size(181, 21)
  8.             mas(i).Left = 14
  9.             mas(i).Top = (1 + i) * 30
  10.             mas(i).Visible = True
  11.             Me.Controls.Add(mas(i))
  12.         Next
  13.     End Sub
  14.  
  15.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  16.         Dim i As Integer
  17.         Dim j As Integer
  18.         For i = 0 To mas.Count - 1
  19.             For j = 1 To 10
  20.                 mas(i).Items.Add("Число " & j * (i + 1))
  21.                 mas(i).Update()
  22.             Next
  23.         Next
  24.     End Sub

Ответить

Номер ответа: 9
Автор ответа:
 машинист



Вопросов: 6
Ответов: 26
 Профиль | | #9 Добавлено: 28.04.09 22:57
Внешне представление ComboBox'ов в виде массива, как у Aston, кажется наиболее наглядным и удобным при различных манипуляциях.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам