2017-02-17 82 views
1

我根據一些條件另一個控制

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

由於我增加了許多控制所以可讀性的原因,我將檢查所有其他控件後,這種情況下添加一個控制之前添加的控制。但它會在所有控件添加控件lnkTest之後調用它們。在將代碼移到我想要的適當位置時,我沒有任何問題,但它會降低可讀性。我只是想知道是否有任何方法可以在任何控制之前添加lnkTest

回答

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可能不會損害可讀性而不是這種記憶。

1

只需使用AddAt方法是這樣的:

dv1.Controls.AddAt(0, lnkTest); 

參考:ControlCollection.AddAt Method

在指定的索引位置將指定的控制對象添加到集合。