6

例如;

panel1.Controls.Add(myControl);添加到集合的末尾。

有没有办法在不替换开头的情况下添加到集合的开头?

panel1.Controls.AddAt(0, myControl)将控件替换为 0。

更新

实际上它似乎工作而不是取代它。我可能弄错了。

4

2 回答 2

8

你可以使用ControlCollection.SetChildIndex方法。

将集合中指定子控件的索引设置为指定的索引值。


SetChildIndex被调用时,Controlchild 参数引用的对象被移动到 newIndex 指定的位置,并且重新排序中的其他 Control引用Control.ControlCollection以适应移动。

于 2013-04-15T06:00:10.667 回答
0

尝试这个 :

List<Literal> persistControls = new List<Literal>();
protected void Page_Load(object sender, EventArgs e)
{          
     display();           
}

protected void commentButton_Click(object sender, EventArgs e)
{
    Literal myComment = new Literal();
    myComment.Text = "<p>" + commentBox.Text + "</p><br />";
    commentPanel.Controls.Add(myComment);
    persistControls.Insert(0,myComment);
    Session["persistControls"] = persistControls; 
    display();
}
void display()
{
    // if you already have some literal populated
    if (Session["persistControls"] != null)
    {
        // pull them out of the session
        persistControls = (List<Literal>)Session["persistControls"];
        foreach (Literal ltrls in persistControls)
            commentPanel.Controls.Add(ltrls); // and push them back into the page
    }
}
于 2013-04-15T06:09:01.817 回答