添加到ControlCollection的项目未显示

时间:2014-12-11 17:02:12

标签: vb.net

我正在尝试使用以下代码向面板添加一些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有关。

提前致谢

1 个答案:

答案 0 :(得分:0)

问题是复选框的大小。与设计器中添加的复选框不同,在使用Autosize创建复选框时,Dim cbx As New CheckBox属性为FALSE。

结果是他们创建的大小约为80-100,并且看起来彼此重叠的方式不可见(第一个复选框的背景隐藏了第二个复选框,依此类推。)< / p>

所以问题的解决方案是:

 cbx.AutoSize = True