usercontrol中的标签不可见

时间:2017-09-17 15:06:48

标签: vb.net winforms user-controls inherited

.NET 4.6.1。我创建了一个Windows窗体usercontrol。我已将其更改为继承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。我试过在运行时动态添加Label但没有运气。我也试过将它从朋友改为公共但没有。 BringToFront也没有帮助。检查了它的位置,它似乎在逻辑值内(45,72)。

无法想到其他任何事情。我错过了什么吗?我试图实现的是什么?

1 个答案:

答案 0 :(得分:0)

感谢Hans Passant的回复,我指出了正确的方向。我已经通过Visual Studio的UI向UserControl添加了一个Label,期望它会将所有必要的代码添加到源文件中,这几乎总是由VS完成的。看来VS2013,当你在一个继承自另一个控件的usercontrol中添加一个控件时,并不是所有元素都会自动添加到源代码中。在这种情况下,VS不会像我预期的那样在Designer.vb文件中自动添加以下语句:

Me.Controls.Add(Label1)

我手动添加它并解决了问题。