Как динамически добавлять ярлыки по одному? - PullRequest
1 голос
/ 21 января 2020

Программист Noob здесь, go легко для меня, поскольку я понятия не имею, что я должен делать, или что я делаю. Но вот что я хочу сделать:

Итак, в моем проекте есть кнопка (хорошо, это не кнопка, это ярлык с событием нажатия), и я хочу, чтобы это происходило каждый раз Я нажимаю на нее, появляется новая метка, и если я нажимаю ее снова, под ней появляется другая другая метка (в частности, 50 пикселей под ней). Мне удалось сделать это до такой степени, что я могу добавить еще одну метку, но я понятия не имею, как я могу заставить ту же кнопку добавить еще одну.

Я пробовал циклы и раньше, но из всего, что я сделал, удается только создать несколько меток одновременно, а не сделать так, чтобы он добавлял только другую метку при нажатии кнопки. Итак, вот мой код:

 Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
        Dim xpoint As Integer
        Dim ypoint As Integer
        xpoint = 12
        ypoint = 200

        Dim label As New Label With {
            .Name = "test",
            .Location = New Point(xpoint, ypoint),
            .Font = New Font("Myriad Pro", 15),
            .Text = "bruh",
            .ForeColor = Color.White,
            .BackColor = Color.Black,
            .AutoSize = True
            }
        PictureBox1.Controls.Add(label)

1 Ответ

2 голосов
/ 21 января 2020

Ваше текущее решение просто складывает все метки, поэтому вы не можете видеть разные метки. Вы должны добавить смещение каждой метки, как показано ниже:

Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
    Dim xpoint As Integer
    Dim ypoint As Integer
    Dim cntLabels As Integer = PictureBox1.Controls.Count
    xpoint = 12
    ypoint = 200 + (cntLabels * 50)

    Dim label As New Label With {
        .Name = "test",
        .Location = New Point(xpoint, ypoint),
        .Font = New Font("Myriad Pro", 15),
        .Text = "bruh",
        .ForeColor = Color.White,
        .BackColor = Color.Black,
        .AutoSize = True
        }
    PictureBox1.Controls.Add(label)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...