-1

.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)。

想不出别的了。我错过了什么吗?我正在努力实现的目标是可能的吗?

4

1 回答 1

0

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

Me.Controls.Add(Label1)

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

于 2017-09-17T19:54:22.567 回答