【发布时间】:2011-12-01 18:38:09
【问题描述】:
伙计们,我正在尝试动态创建面板,每个面板都填充有七个单选按钮。 我得到了面板,但每个面板只填充了 1 个单选按钮。我在这里做错了什么? 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)
这解决了问题。
【问题讨论】:
标签: vb.net radio-button panel