У меня возникла интересная проблема с дизайном приложения Windows Form, с которым мне трудно справиться. В настоящее время я работаю над программой, которая должна быть цифровой заменой для определенного контрольного списка, который использует моя компания. Это должно быть просто, но было поручено, чтобы программа использовала содержимое базы данных SQL для определения того, какие элементы должны быть в контрольном списке в программе (что упрощает изменение элементов в контрольном списке). Это означает, что мне приходится динамически разрабатывать и создавать большую часть моего приложения, используя код вместо моего дизайнера Visual Studio 2010.Как организовать элементы управления в Groupbox внутри TableLayoutPanel в VB.net
Мне удалось выяснить материал SQL и даже большинство материалов динамического дизайна, но есть одна сложная проблема, которую я, похоже, не могу победить. Чтобы создать внешний вид контрольного списка, я динамически создаю таблицу TableLayoutPanel с двумя столбцами и одной строкой. Затем я извлекаю данные из базы данных и создаю групповой ящик с заголовком с инструкцией, которую должен выполнять человек, использующий программу. Я также добавляю текстовое поле с меткой, флажок или оба в групповой ящик в зависимости от ввода базы данных. Наконец, я добавляю текстовое поле, метку и/или флажок в групповой пакет, затем добавляю строку в свою таблицу и добавляю групповой пакет в таблицу в этой строке. Тем не менее, все элементы управления в групповом поле выровнены в верхнем левом углу строки, поэтому я пытаюсь настроить их организацию, используя их свойство .location. К сожалению, в тот момент, когда я изменяю это свойство, затронутый элемент управления полностью исчезает из формы. Я пробовал использовать метод .bringtofront() без успеха; управление все еще отсутствует.
Что я ищу - это руководство по организации динамически создаваемых элементов управления в динамически создаваемом групповом поле (или любом другом элементе управления группировкой), который сам содержится в другом динамически создаваемом элементе управления группировкой. Я бы очень признателен за любую помощь, которую я могу получить; эта проблема мешает мне работать над функциональностью программы. Приведенный код размещен ниже. Заранее спасибо!
Private Sub addItem(ByVal count As Integer, ByVal itemList As List(Of checklistField))
If itemList(count).hasTextbox Or itemList(count).hasCheckbox Then
Dim newGroupbox As New GroupBox
With newGroupbox
.Dock = DockStyle.Fill
.Text = itemList(count).instruction
End With
If ((itemList(count).hasTextbox = True) And (itemList(count).hasCheckbox = False)) Then
Dim newTextboxLabel As New Label
With newTextboxLabel
.Text = itemList(count).textboxLabel
'.Location = New Point(20, (475))
.AutoSize = True
End With
Dim newTextbox As New TextBox
With newTextbox
.Name = "Textbox" & count.ToString
.Size = New Size(100, 20)
'.Location = New Point(100, (470 + (10 * count)))
End With
textboxList.Add(newTextbox)
newGroupbox.Controls.Add(newTextboxLabel)
newGroupbox.Controls.Add(newTextbox)
tblFields.RowCount += 1
tblFields.RowStyles.Add(New RowStyle(SizeType.AutoSize))
tblFields.Controls.Add(newGroupbox, 0, tblFields.RowCount - 1)
Это сработало! Благодаря! Это действительно меня заводит, потому что я уже потратил кучу времени на общение с местом без везения. Ну, пора работать! – Arch