我根据某些条件添加一个控件
if(x = true)
dv1.Controls.Add(lnkTest);
else
dv2.Controls.Add(lnkTest);
当我添加许多控件时,为了便于阅读,我在添加所有其他控件后检查了这个条件。但它会在所有控件之后添加控件lnkTest
,因为它在它们之后被调用。我将此代码移动到我想要的正确位置没有问题,但它会稍微损害可读性。我只是想知道在任何控制之前是否有任何方法可以添加lnkTest
?
答案 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);
请记住,您需要为dv1
和dv2
执行此操作。在那一点上,我认为你的if
可能不会比记忆更能影响可读性。