我试图用以下代码向面板中添加一些复选框:
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坐标有关。
提前感谢
发布于 2014-12-11 18:03:14
问题是复选框的大小。与在设计器中添加的复选框不同,Autosize属性在使用Dim cbx As New CheckBox创建复选框时是假的。
其结果是,它们创建时的大小约为80-100,并以不可见的方式相互重叠(第一个复选框的背景隐藏了第二个复选框的复选框,等等)。
所以解决我的问题的方法是:
cbx.AutoSize = Truehttps://stackoverflow.com/questions/27428411
复制相似问题