Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Добавление пикчебоксов на форму в цикле


Автор: GOBLIN_TT 25.7.2008, 23:49
Всем привет  smile 

Народ помогите никак неразберусь, необходимо на форму програмно в цикле добавить 3 пикче бокса, пробовал так :
Код

        For i = 0 To 3

            Dim Picturebox(i) As PictureBox

            Controls.Add(PictureBox(i))

            Picturebox(i).BorderStyle = BorderStyle.FixedSingle
            Picturebox(i).BackgroundImage = Global.RES.My.Resources.Resources.bigboobs_15
            Picturebox(i).BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch
            Picturebox(i).Location = New System.Drawing.Point(12, 92)
            Picturebox(i).Name = "PictureBox1"
            Picturebox(i).Size = New System.Drawing.Size(240, 205)

        Next


Но ничего неполучается, пикче боксы недобавляются (

1 пикчебокс отлично добавляется, но мне необходимо добавить на форму, N икчебоксов..
Код

        For i = 0 To 3

            Dim Picturebox1 As new PictureBox

            Controls.Add(PictureBox1)

            Picturebox1.BorderStyle = BorderStyle.FixedSingle
            Picturebox1.BackgroundImage = Global.RES.My.Resources.Resources.bigboobs_15
            Picturebox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch
            Picturebox1.Location = New System.Drawing.Point(12, 92)
            Picturebox1.Name = "PictureBox1"
            Picturebox1.Size = New System.Drawing.Size(240, 205)

        Next


Помогите разобраться +)

Автор: Pilger 26.7.2008, 00:24
Ты создаешь 4 PictureBox'а, которые появляются в одном месте друг на друге.

Код

        Dim i As Integer
        Dim PictureBox(0 To 2) As PictureBox

        For i = 0 To 2
            PictureBox(i) = New PictureBox
            Controls.Add(PictureBox(i))
            PictureBox(i).BorderStyle = BorderStyle.FixedSingle
            PictureBox(i).BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch
            PictureBox(i).Location = New System.Drawing.Point(12, 92)
            PictureBox(i).Size = New System.Drawing.Size(240, 205)
            PictureBox(i).Name = "PictureBox" & i
        Next

Автор: GOBLIN_TT 26.7.2008, 00:42
Всё равно создаётся только 1 (
Координаты поправил.

Код

Dim i As Integer
        Dim PictureBox(0 To 4) As PictureBox

        For i = 0 To 4
            PictureBox(i) = New PictureBox
            Controls.Add(PictureBox(i))
            PictureBox(i).BorderStyle = BorderStyle.FixedSingle
            PictureBox(i).BackgroundImage = Global.RES.My.Resources.Resources.bigboobs_15
            PictureBox(i).BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch
            PictureBox(i).Location = New System.Drawing.Point(12, PictureBox(i).Location.X + 204)
            PictureBox(i).Size = New System.Drawing.Size(240, 205)
            PictureBox(i).Name = "PictureBox" & i
        Next

Автор: Pilger 26.7.2008, 00:47
Ты опять их создаешь друг на друге. Замени к примеру на это:

Код

PictureBox(i).Location = New System.Drawing.Point(12 * (i + 1) + (240 * i), 92)

Автор: GOBLIN_TT 26.7.2008, 00:56
Pilger - Спасибо! =)

Автор: GOBLIN_TT 26.7.2008, 02:08
Слушай а незнаешь, как можно к каждому пикчебоксу своё действие прикрутить ?

Автор: Pilger 30.9.2008, 14:53
Пример для клика.
Код

AddHandler PictureBox(i).Click, AddressOf PictureBox_Click 'Это пихаешь в цикл


Код

    Private Sub PictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        'Действие
    End Sub

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)