无法使按钮可见属性为true

时间:2013-11-02 18:52:30

标签: vb.net

我正在研究VB.NET

我有一个用(除其他外)一个面板和一些按钮创建的表单。

按钮的默认可见属性值为true。但是,当我启动表单时,它们是不可见的。

我调查并发现,在设计师生成的代码中,按钮在添加到面板时是可见的,当将面板添加到主窗体时,它们变得不可见。

以下是我的代码预览:

'ActionsPanel is the panel which contains the buttons
Me.ActionsPanel.Controls.Add(Me.SaveButton)
Me.ActionsPanel.Controls.Add(Me.DeleteButton)
Me.ActionsPanel.Controls.Add(Me.NewButton)
Me.ActionsPanel.Controls.Add(Me.OpenButton)
'So far the buttons are visible

Me.Controls.Add(Me.ActionsPanel)
'Me refers to the parent form of the controls
'As of here the buttons become invisible

因此,在面板添加到表单的行中,按钮变为不可见。

我正在尝试使用调试器强制它们为测试,但属性不会改变(请参阅视频广播:Video

有人有想法吗?

感谢。

3 个答案:

答案 0 :(得分:1)

我今天遇到了类似的问题(虽然我再也看不到视频了)在我的具体情况下,问题是我设置了另一个控件的子控件的可见属性。

如果我child.visible=true然后if child.visible,则结果为false

我发现,如果我设置parent.visible=true,那么child.visible也会变为true。实际上,如果父级可见,则子控件看起来只报告其定义的状态。

希望这可以帮助一些人,即使这个帖子超过2年。

答案 1 :(得分:0)

'ActionsPanel is the panel which contains the buttons
Me.ActionsPanel.Controls.Add(Me.SaveButton)
Me.ActionsPanel.Controls.Add(Me.DeleteButton)
Me.ActionsPanel.Controls.Add(Me.NewButton)
Me.ActionsPanel.Controls.Add(Me.OpenButton)

这表示您将表单中的按钮添加到面板。由于您不更改位置,因此很可能他们不在可见区域。并不是可见属性是假的,而是它们不可见或无法看到。它不断变回,因为它们不在可视区域内。

dim btn as Button = Me.SaveButton
Me.ActionsPanel.Controls.Add(btn)
btn.Location = new point (10,10)      ' maybe other properties too

btn = Me.DeleteButton
Me.ActionsPanel.Controls.Add(btn)
btn.Location = new point (10,40)

答案 2 :(得分:0)

使用

Me.ActionsPanel.Controls.Add(Button1)

而不是

Me.ActionsPanel.Controls.Add(Me.Button1)

希望这有帮助。

此外,如果您想移动它,请使用

Button1.Location = New Point(X, Y)