Динамическое создание меток в операторе if …then

#vb.net

#vb.net

Вопрос:

Это может быть просто, но мне сложно это сделать. Я пытаюсь создать раздел «обзор» в пошаговой форме, где пользователь может видеть все, что было введено, и, если они выберут, вернуться и снова «отредактировать» эту информацию. В одном разделе должна отображаться только информация, добавленная пользователем, в основном, если они не устанавливают определенный флажок, нет причин отображать информацию для этого поля.

Я хочу динамически создавать метки на панели (Panel7) на странице вкладок (TabPage3), только для информации о флажке, которая была выбрана. Это то, что у меня есть прямо сейчас, и я ничего не вижу на странице, я также пробовал без панели и прямо на самой вкладке, но безрезультатно.

     MsgBox(CurPat, MsgBoxStyle.Critical)
    If (CurPat = "True") Then
        Dim lblTemp As New Label
        lblTemp.Text = "Inquirer has used service previously: " amp; CurPat
        lblTemp.Location = New Point(x, y)
        Me.Panel7.Controls.Add(lblTemp)
    End If
  

окно сообщения заранее должно просто сообщить мне, что ему присвоено значение «True», которое, я уверяю, так и есть.
Заранее благодарю вас за любую помощь.
-NickG

Комментарии:

1. Вы пытались установить для его видимости значение True?

2. x и y находятся внутри видимой области панели?? вы переместили его на передний план?? установить значение visible равным true?

3. Вы также установили размер и расположение панели? Является ли его свойство visible истинным?

4. ПОМИМО всех приведенных выше предложений… вы действительно гарантировали, что код внутри if выполняется?

Ответ №1:

Я думаю, что есть проблема с:

 If (CurPat = "True")
  

Что должно быть:

 If (CurPat = True)
  

Просто чтобы убедиться, поместите окно сообщения внутри If блока, чтобы увидеть, запускается ли оно, и еще одно в Else блоке.

 If (CurPat = True)
    MessageBox.Show("CurPat = True")
    ...
Else
    MessageBox.Show("CurPat = False")
End If
  

Ответ №2:

Если вы не хотите вычислять правильные местоположения X, Y для каждой метки, установите для каждой вновь созданной метки значение Autosize = False и Dock = Top . Таким образом, они будут накладываться друг на друга на панели. Но обратите внимание, что они будут сложены с первой меткой внизу и самой новой сверху. Вам придется проработать эту часть.