Ребята, я пытаюсь динамически создавать панели, каждая из которых заполнена семью переключателями. Я получаю панели, но каждая из них заполнена только одним переключателем. Что я здесь делаю неправильно? QuestionQuantity является целым числом и представляет собой переменную, определяющую, сколько панелей я буду создавать. Код находится в функции загрузки формы.
Спасибо,
Dim Pan As Panel
Dim RButton As RadioButton
For x As Integer = 1 To QuestionsQuantity Step 1
Pan = New Panel
Pan.Name = "Panel" & Convert.ToString(x)
Pan.Left = 300
Pan.Top = 100 + 52 * (x - 1)
Pan.Height = 48
Pan.Width = 280
Pan.BackColor = Color.Coral
Controls.Add(Pan)
For y As Integer = 1 To 7 Step 1
RButton = New RadioButton
RButton.Name = "RadioButton" & Convert.ToString(x) & Convert.ToString(y)
RButton.Left = 1 + 30 * (y - 1)
RButton.Top = 10
RButton.Text = Convert.ToString(y)
RButton.CheckAlign = System.Drawing.ContentAlignment.BottomCenter
RButton.TextAlign = System.Drawing.ContentAlignment.TopCenter
RButton.UseVisualStyleBackColor = True
Controls.Add(RButton)
Pan.Controls.Add(RButton)
Next
Next
Я возился с этим, вынул раздел «Панель» и просто использовал RadioButtons, чтобы посмотреть, получу ли я семь из них. Я могу получить семь, если я смещу их в направлении y (.top), но по какой-то причине это не работает в направлении x (.left)
For y As Integer = 1 To 7 Step 1
RButton = New RadioButton
RButton.Name = "RadioButton1" & Convert.ToString(y)
RButton.Left = 20 + (y * 30)
RButton.Top = 10
RButton.Text = Convert.ToString(y)
RButton.CheckAlign = System.Drawing.ContentAlignment.BottomCenter
RButton.TextAlign = System.Drawing.ContentAlignment.TopCenter
RButton.UseVisualStyleBackColor = True
Controls.Add(RButton)
Next
Пожалуйста помогите!
Наконец-то я понял. Проблема заключалась в объявлении размера RadioButton. Это будет слишком большим, если не будет объявлено, даже если я увеличу интервал.
RButton.Size = New System.Drawing.Size(17, 30)
Это решило проблему.