我正在尝试使用以下代码向面板添加一些Checkbox:
For t = 0 To taglist.Count - 1 'list(of string)
'new ComboBox
Dim cbx As New CheckBox
'some options
cbx.ThreeState = True
cbx.CheckState = CheckState.Indeterminate
cbx.Name = "cbxTag" & cnt
cnt += 1
cbx.Text = taglist.Item(t)
'cbx.Top = (y + 2) * 10
'cbx.Left = x * 30 + 10
cbx.Location = New Point(x * 60 + 5, (y) * 20 + 20)
'Add it to controls
SplitContainer2.Panel1.Controls.Add(cbx)
' Positioning stuff
If x * 60 + 65 < SplitContainer2.Panel1.Width Then
x += 1
Else
x = 0
y += 1
End If
Next
使用debug我看到项目已添加到集合中,并且位置似乎正确(处于可见位置)。
问题:表单上只显示每行的第一项。 编辑:问题似乎与x koordinate有关。
提前致谢
答案 0 :(得分:0)
问题是复选框的大小。与设计器中添加的复选框不同,在使用Autosize
创建复选框时,Dim cbx As New CheckBox
属性为FALSE。
结果是他们创建的大小约为80-100,并且看起来彼此重叠的方式不可见(第一个复选框的背景隐藏了第二个复选框,依此类推。)< / p>
所以问题的解决方案是:
cbx.AutoSize = True