Страница: 1 |
Страница: 1 |
Вопрос: перебор объектов???
Добавлено: 15.07.07 23:52
Автор вопроса: RtytS
Здраствуйте. Вы уж простите за, возможно глупый, вопрос. Начинающий я. Есть такой код:
Dim i As Int32
For i = 1 To 100
Dim objGraphics As Graphics
objGraphics = Me.CreateGraphics
objGraphics.Clear(System.Drawing.SystemColors.Control)
objGraphics.DrawLine(System.Drawing.Pens.Red, 0, 0, _
Me.DisplayRectangle.Width, Me.DisplayRectangle.Height)
Next
Вопрос----Как сделать перебор объектов objGraphics+i, т.е. для i=1 использовался бы типа objGraphics1, для i=2 objGraphics2 и т.д. до 100. В языках МЭК это, грубо, выглядело бы так:
For i = 1 To 100
Dim objGraphics[i] As Graphics
objGraphics[i] = Me.CreateGraphics
objGraphics[i].Clear(System.Drawing.SystemColors.Control)
objGraphics[i].DrawLine(System.Drawing.Pens.Red, 0, 0, _
Me.DisplayRectangle.Width, Me.DisplayRectangle.Height)
Next
[/code]
Другой аналог---есть 1000 Button'ов хочу им всем цвет фона одновременно менять, так тоже, как это в vb?...явно что не так Button...Вообще это называется КОСВЕННАЯ АДРЕСАЦИЯ...в тех языках, где я программил...а в vb? Поиск по Косвенная адресация ничего не дал.
Всем заранее спасибо за ответы.
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #1
Добавлено: 16.07.07 00:45
Объект должен быть членом массива или коллекции объектов.
Dim i As Integer
Dim b As Button
Dim objGraphics(100) As Graphics
For i = 0 To UBound(objGraphics)
' ...
Next
For Each b In Me.Controls
' ...
Next
Номер ответа: 2
Автор ответа:
RtytS
Вопросов: 1
Ответов: 1
Профиль | | #2
Добавлено: 16.07.07 15:18
а без массива нельзя...как-то не очень хорошо...а если мне надо =>
возможно пример не совсем удачный переформулирую:
Есть форма, на ней три Textbox и один button, то есть Textbox1, Textbox2, Textbox3 и Button1. По наж-ию кнопки в текст textbox'ов надо занести текст "blablabla", стандартно так
Код:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox1.Text = "blablabla"
TextBox2.Text = "blablabla"
TextBox3.Text = "blablabla"
End Sub
а если textbox'ов 2000, то хотелось бы так
Код:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 im i As Int16
For i = 1 To 3
TextBox(i).Text = "blablabla"
Next
End Sub
то есть при i=1 в теле цикла TextBox1, при i=2 TextBox2 etc.