【问题标题】:How to append dynamically created Windows Forms controls?如何附加动态创建的 Windows 窗体控件?
【发布时间】:2009-09-25 13:17:03
【问题描述】:

虽然我可以在 ASP.NET 中使用 AddAt() 轻松完成,但我正在尝试在 Windows 窗体中做同样的事情。

我有一个面板,虽然我可以做一个 pnlMyPanel.Controls.Add(ctl) ...它总是将它插入到 0 位置,而我宁愿将它附加到末尾,或者 pnlMyPanel.Controls。计数。

我是否忽略了一种方法,还是必须做其他事情?

【问题讨论】:

    标签: c# winforms controls


    【解决方案1】:

    这取决于您的控件的布局方式。

    我假设面板中的所有控件都设置了 Dock 属性。如果是这样,请在将新控件添加到面板后调用BringToFrontSendToBackSetChildIndex

    如果没有,请设置新控件的TopLeft 属性(或Location 属性)。

    【讨论】:

    • 那你想在添加控件后调用BringToFront
    【解决方案2】:

    AddAt 功能可以通过 AddSetChildIndex 方法的组合来实现。

    你可以使用

    SetChildIndex Method

    在添加子控件后重新排序子控件的索引。

    当调用 SetChildIndex 时, 子项引用的控制 参数移动到位置 由 newIndex 和其他指定 控件中的引用 Control..::.ControlCollection 是 重新排序以适应移动。这 索引值为零的控制是 在 z 顺序的顶部,以及更高 数字更接近底部。

    【讨论】:

      猜你喜欢
      • 2013-11-04
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-25
      相关资源
      最近更新 更多