Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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. В языках МЭК это, грубо, выглядело бы так:

Dim i As Int32
        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
        ;Dim i As Int16
            For i = 1 To 3
            TextBox(i).Text = "blablabla"

        Next
    End Sub


то есть при i=1 в теле цикла TextBox1, при i=2 TextBox2 etc.

Ответить

Страница: 1 |

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



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