用户控件内的标签不可见
label inside usercontrol not visible
.NET 4.6.1。我创建了一个 windows 表单用户控件。我已将其更改为继承 System.Windows.Forms.TreeView 而不是 Control。在其中,我添加了(在设计器中)一个标签,我在控件内部决定何时显示标签。控件被放置在一个表单中,并在运行时用树结构填充它(这是正确完成的)。问题是当标签的 Visible 属性 在运行时设置为 True 时标签没有显示。
Public Class Treeview111
Inherits System.Windows.Forms.TreeView
...
Public Sub ShowLabel
Label1.Visible=True
End Sub
即使在设计器中将 Visible 属性 设置为 True,Label 也不会显示。我曾尝试在运行时动态添加标签,但没有成功。我也试过将它从 Friend 更改为 Public 但没有。 BringToFront 也没有帮助。检查了它的位置,它似乎在逻辑值 (45,72) 内。
想不出别的了。我错过了什么吗?我正在努力实现的目标是否可行?
感谢 Hans Passant 的回复,为我指明了正确的方向。我已经通过 Visual Studio 的 UI 向 UserControl 添加了一个标签,期望它将所有必要的代码添加到源文件中,就像 VS 几乎总是这样做的那样。看来VS2013,当您在继承自另一个控件的用户控件中添加控件时,并非所有元素都会自动添加到源代码中。在这种情况下,VS 没有像我预期的那样在 Designer.vb 文件中自动添加以下语句:
Me.Controls.Add(Label1)
我手动添加了,问题解决了
.NET 4.6.1。我创建了一个 windows 表单用户控件。我已将其更改为继承 System.Windows.Forms.TreeView 而不是 Control。在其中,我添加了(在设计器中)一个标签,我在控件内部决定何时显示标签。控件被放置在一个表单中,并在运行时用树结构填充它(这是正确完成的)。问题是当标签的 Visible 属性 在运行时设置为 True 时标签没有显示。
Public Class Treeview111
Inherits System.Windows.Forms.TreeView
...
Public Sub ShowLabel
Label1.Visible=True
End Sub
即使在设计器中将 Visible 属性 设置为 True,Label 也不会显示。我曾尝试在运行时动态添加标签,但没有成功。我也试过将它从 Friend 更改为 Public 但没有。 BringToFront 也没有帮助。检查了它的位置,它似乎在逻辑值 (45,72) 内。
想不出别的了。我错过了什么吗?我正在努力实现的目标是否可行?
感谢 Hans Passant 的回复,为我指明了正确的方向。我已经通过 Visual Studio 的 UI 向 UserControl 添加了一个标签,期望它将所有必要的代码添加到源文件中,就像 VS 几乎总是这样做的那样。看来VS2013,当您在继承自另一个控件的用户控件中添加控件时,并非所有元素都会自动添加到源代码中。在这种情况下,VS 没有像我预期的那样在 Designer.vb 文件中自动添加以下语句:
Me.Controls.Add(Label1)
我手动添加了,问题解决了