Массив элементов управления.

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

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

Dethlord
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 12.11.2007 (Пн) 14:09

Массив элементов управления.

Сообщение Dethlord » 25.05.2009 (Пн) 12:21

Пишу карточную игру на VB.NET но ставить в тупик сабж.
вот рабочий код:
В форме
Код: Выделить всё
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        PictureBox1.Image = GetItem(1)
        PictureBox2.Image = GetItem(2)
End Sub

Public Function GetItem(ByVal Karta As Integer) As System.Drawing.Image
        Select Case Karta
            Case 1
                Return My.Resources._2S
            Case 2
                Return My.Resources._2C
        End Select
    End Function

А как мнезамутить чтоб я и PictureBox не перечислял вручную а чтоб выгледело примерно так:
Код: Выделить всё
for e=1 to 25
Функция(e)= GetItem(1)
next e

помните как в VB обычном было:
text1(t).text=text2(t)
Мне нужно реализовать чтото подобное
пытался делать так:
Код: Выделить всё
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        PictureBox1.Image = GetItem(1)
        PictureBox2.Image = GetItem(2)
        Zapoln(Что тут писать?)
    End Sub
   
    Private Sub Zapoln(ByVal container As Control)
        Dim ctrl As System.Windows.Forms.PictureBox
        For Each ctrl In container.Controls
            If TypeOf (ctrl) Is PictureBox Then
                ctrl.Image = GetItem(1)
            End If
        Next
    End Sub
не прокатывает.

Dethlord
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 12.11.2007 (Пн) 14:09

Re: Массив элементов управления.

Сообщение Dethlord » 25.05.2009 (Пн) 12:50

Все разобрался осталось тока одно замечание
вот код:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cb(4) As PictureBox
cb(1) = Me.PictureBox1
cb(2) = Me.PictureBox2
cb(3) = Me.PictureBox3
cb(4) = Me.PictureBox4
For i As Integer = 1 To 4
cb(i).Image = GetItem(1)
Next
End Sub

тока жалуется на:(в виде Предупреждения)
Код: Выделить всё
Public Function GetItem(ByVal Karta As Integer) As System.Drawing.Image
        Select Case Karta
            Case 1
                Return My.Resources._2S
            Case 2
                Return My.Resources._2C
        End Select
    End Function

Функция "GetItem" возвращает значение не для всех ветвей кода. Во время выполнения может произойти исключение при ссылке на значение NULL.
Что не так?

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Массив элементов управления.

Сообщение arvitaly » 25.05.2009 (Пн) 12:51

может быть case else?

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Массив элементов управления.

Сообщение Williams » 25.05.2009 (Пн) 12:53

Добавить их в свою коллекцию. Например:
Код: Выделить всё
private boxes as list (of picturebox)

boxes.add (picturebox1): boxes.add (picturebox2)

обращаешся так:
Код: Выделить всё
boxes.item(n)
И вы думаете, что вас оставят в живых после прочтения этого поста?


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

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

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

    TopList