夥計們我試圖動態創建每個都有七個單選按鈕的面板。 我得到的面板,但他們只填充1個單選按鈕。我在這裏做錯了什麼? QuestionQuantity是一個整數,它是決定我將創建多少個面板的變量。代碼位於表單加載函數中。在Visual Basic中動態添加Panel和RadioButtons
感謝,
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
我搞砸與它拿出面板部分,只是使用的單選按鈕才能看到,如果我得到的這七個。我可以得到7,如果我在y方向(.TOP)OFSET他們,但它並不適用於某些原因在x工作(。左)方向
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)
解決了這個問題。
那麼我看到第一個單選按鈕。其他人會是正確的,因爲我增加了RButtin.Left30。我想我首先必須將它們添加到控件中,然後將它們「分配」給面板?! – Patrik
我的bad.maybe在.Left和你的按鈕的.Align之間存在衝突。 – GameAlchemist
我自己運行它並操作代碼。我改變了.top而不是.left,並且我得到了七個單選按鈕。有些東西正在搞亂.left – Patrik