另一个控件之前添加控件

时间:2017-02-17 11:11:09

标签: c# asp.net webforms

我根据某些条件添加一个控件

if(x = true)
    dv1.Controls.Add(lnkTest);
else
    dv2.Controls.Add(lnkTest);

当我添加许多控件时,为了便于阅读,我在添加所有其他控件后检查了这个条件。但它会在所有控件之后添加控件lnkTest,因为它在它们之后被调用。我将此代码移动到我想要的正确位置没有问题,但它会稍微损害可读性。我只是想知道在任何控制之前是否有任何方法可以添加lnkTest

2 个答案:

答案 0 :(得分:1)

只需使用AddAt这样的方法:

dv1.Controls.AddAt(0, lnkTest);

参考:ControlCollection.AddAt Method

  

将指定的Control对象添加到指定索引位置的集合。

答案 1 :(得分:1)

AddAt方法允许您指定要插入控件的位置索引。最初使用索引0:

dv1.Controls.AddAt(0, lnkTest);

但是请注意,这会在任何孩子之前插入lnkTest,包括那些你没有自己插入的孩子。所以你应该记住插入应该发生的地方:

int start = dv1.Controls.Count();
// insert all other controls
dv1.Controls.AddAt(start, lnkTest);

请记住,您需要为dv1dv2执行此操作。在那一点上,我认为你的if可能不会比记忆更能影响可读性。