【发布时间】:2013-06-21 14:39:17
【问题描述】:
我只是想在我的表单中添加三个控件。前两个出现,但第三个没有。我不明白为什么会发生这种行为。我曾尝试使用 .bringToFront(),但最终得到了相同的结果。我也尝试过使用 Me.controls.setChildIndex() 但这也无济于事。
我很茫然。我一定做错了什么。请帮忙。
谢谢。
这是我的代码:
' Add the label
' ------------------
Dim menu_label As New Label
menu_label.Text = "Menu"
menu_label.Location = New Point(50, 20)
menu_label.Width = 50
menu_label.Font = New Font(main_font, main_font_size, FontStyle.Regular)
menu_label.ForeColor = Color.White
Me.Controls.Add(menu_label)
' create the image
' ---------------
Dim logo As New PictureBox
Dim logo_image As Image
logo_image = My.Resources.logo
logo.Image = logo_image
logo.Width = 30
logo.Height = 30
logo.Left = 5
logo.Top = 0
Me.Controls.Add(logo)
' add a line
' ----------
Dim line As New Panel
line.Height = 1
line.Width = Me.Width
line.BackColor = Color.Red
line.Location = New Point(0, 32)
Me.Controls.Add(line)
' end code
' ---------------------------------
无论我按什么顺序排列,都只会显示前两项。所以我要么只得到标志和菜单标签,要么只得到标志和线条,或者只得到线条和菜单标签。疯了!
所以我尝试了:
Me.Controls.SetChildIndex(logo, 0)
Me.Controls.SetChildIndex(menu_label, 1)
Me.Controls.SetChildIndex(line, 2)
分配到 2 级的项目永远不会出现。
【问题讨论】:
-
我在加载事件中尝试了您的代码,第一部分,并看到了所有三个项目。我采用了默认字体。
-
查看每组前后所有相关控件的索引。我怀疑他们在每次更改后都会受到影响。如果我是你,我会创建一个用户控件,并将这三个包含在其中。