6

例えば;

panel1.Controls.Add(myControl);コレクションの最後に追加します。

先頭のものを置き換えずにコレクションの先頭に追加する方法はありますか?

panel1.Controls.AddAt(0, myControl)コントロールを 0 に置き換えます。

アップデート

実際には機能しているようで、置き換えられません。私はそれを間違えたかもしれません。

4

2 に答える 2

8

メソッドを使用できますControlCollection.SetChildIndex

コレクション内の指定された子コントロールのインデックスを、指定されたインデックス値に設定します。


SetChildIndex呼び出されるとControl、child パラメータによって参照される が 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 に答える