繁体   English   中英

VB.Net:如何更改组框的位置

[英]VB.Net: How do I change the Location of a group box

我的表格中有各种分组框。 此表格用于显示我系统中各种不同站点的数据。

其中一些站有与之关联的 PLC 位,因此有必要显示 PLC 组框。 其他人没有与之关联的任何 PLC 位,所以我想隐藏我的 PLC 位组框,并将所有其他组框推到顶部,这样表格中间就没有巨大的空白空间。

这是它通常的样子。

带有 PLC 位的工作站表格

现在对于我的其他没有 PLC 位的工作站,它看起来像这样。

不带 PLC 位的工位表格

所以目标是,当我有一个没有 PLC 位的工作站时,隐藏 PLC 位组框 (gbBits) 和具有“显示位号”(Panel3) 复选框的组框。

然后将我的“路线中的案例......”组框(gb_Stand)推到PLC位之一的位置。

这是我这样做的代码。

'''

    gbBits.Enabled = False
    gbBits.Visible = False
    Panel3.Enabled = False
    Panel3.Visible = False

    gb_Stand.Location = gbBits.Location

'''

我的表单现在看起来位置从未更新,但我想隐藏的组框被隐藏了。

添加了代码的表单

当我单步执行我的代码时,该位置甚至根本没有更新!

更新前单步执行代码

更新后单步执行代码

我一定是错误地调用了这个位置更改,或者我需要某种刷新。

更新:gb_Stand 未锁定,这不是问题。

好的,我明白了,结果所有这些组框都是 TableLayoutPanel object 的一部分(我的同事喜欢这些东西,其他人都讨厌它们哈哈)。

无法移动组框的位置,因为位置取决于它在 TableLayoutPanel object 中的位置。

为了解决这个问题,我删除了我想从 TableLayoutPanel 中移动的所有内容,然后将我的 gb_stand 组框重新添加到 gbBits 所在的位置(第 3 行)。 调整了我的 TableLayoutPanel object 的大小,一切看起来都完全符合我的要求。

'''

    TableLayoutPanel1.Controls.Remove(Me.gbBits)
    TableLayoutPanel1.Controls.Remove(Me.Panel3)
    TableLayoutPanel1.Controls.Remove(Me.gb_Stand)

    TableLayoutPanel1.Controls.Add(Me.gb_Stand, 0, 3)
    TableLayoutPanel1.RowCount = 3

'''

感谢@AndrewMortimer,您的评论和故障排除任务是引导我走向正确方向的原因!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM