【发布时间】:2009-09-25 13:17:03
【问题描述】:
虽然我可以在 ASP.NET 中使用 AddAt() 轻松完成,但我正在尝试在 Windows 窗体中做同样的事情。
我有一个面板,虽然我可以做一个 pnlMyPanel.Controls.Add(ctl) ...它总是将它插入到 0 位置,而我宁愿将它附加到末尾,或者 pnlMyPanel.Controls。计数。
我是否忽略了一种方法,还是必须做其他事情?
【问题讨论】:
虽然我可以在 ASP.NET 中使用 AddAt() 轻松完成,但我正在尝试在 Windows 窗体中做同样的事情。
我有一个面板,虽然我可以做一个 pnlMyPanel.Controls.Add(ctl) ...它总是将它插入到 0 位置,而我宁愿将它附加到末尾,或者 pnlMyPanel.Controls。计数。
我是否忽略了一种方法,还是必须做其他事情?
【问题讨论】:
这取决于您的控件的布局方式。
我假设面板中的所有控件都设置了 Dock 属性。如果是这样,请在将新控件添加到面板后调用BringToFront、SendToBack 或SetChildIndex。
如果没有,请设置新控件的Top 和Left 属性(或Location 属性)。
【讨论】:
BringToFront。
AddAt 功能可以通过 Add 和 SetChildIndex 方法的组合来实现。
你可以使用
在添加子控件后重新排序子控件的索引。
当调用 SetChildIndex 时, 子项引用的控制 参数移动到位置 由 newIndex 和其他指定 控件中的引用 Control..::.ControlCollection 是 重新排序以适应移动。这 索引值为零的控制是 在 z 顺序的顶部,以及更高 数字更接近底部。
【讨论】: