0

「追加」ボタンと「削除」ボタンのあるパネルを作成しました。「追加」をクリックすると、このヘッダーのすぐ下にパネルが作成され、好きなだけ作成できます。一覧に表示されます。

各パネルにはチェックボックスがあり、削除ボタンをクリックするとチェックボックスがオンになっている場合はパネルを削除したいと思います。

私はループの直感を得ることができます : for 、しかし、少しのヒントなしでこれをやり遂げるにはまだ初心者です。

-

public partial class Test_auto : Form
{
    ArrayList strategyFutureList = new ArrayList();

    public Test_auto()
    {
        InitializeComponent();
        Instance = this;
    }

    //Create a new future strategy
    public void CreateStrategyFuture()
    {
        ConsoleStrategyItem strategyItemFuture = new ConsoleStrategyItem();
        strategyItemFuture.Location = new Point(3, 3);
        futureContainer.Height += 85;
        strategyFutureList.Add(strategyItemFuture);
        futureContainer.Controls.Add(strategyItemFuture);
        ConsoleStrategyItem.Instance.txtStrategyName.Text = "Strat Future " + strategyFutureList.IndexOf(strategyItemFuture) + " ";
        ConsoleStrategyItem.Instance.Name = "strategyFuture" + strategyFutureList.IndexOf(strategyItemFuture);
        ConsoleStrategyItem.Instance.cbxDeleteStrategy.Name = "cbxDeleteFuture" + strategyFutureList.IndexOf(strategyItemFuture);
    }

    //Makes it appear
    private void btnAddStrategyFuture_Click_1(object sender, EventArgs e)
    {
        CreateStrategyFuture();
    }

    //Delete a-some selected strategies
    public void DeleteStrategyFuture()
    {
        for (int i = 0; i < strategyFutureList.Count; i++)
        {
            if (ConsoleStrategyItem.Instance.cbxDeleteStrategy.Checked = true)
            {
            }
        }
    }

    private void btnDeleteStrategyFuture_Click(object sender, EventArgs e)
    {
        DeleteStrategyFuture();
    }
}
4

1 に答える 1

0

に追加される UserControls のリストを維持するために別の ArrayList を作成する必要はありませんfutureContainer。その Controls コレクションを単純に反復処理できます。

DeleteStrategyFuture()メソッドでこれを行うだけです

public void DeleteStrategyFuture()
{
    var length=futureContainer.Controls.Count;
    foreach(int i=0; i< length; i++)
    {
        if(futureContainer.Controls[i].GetType()==typeof(ConsoleStrategyItem))
        { 
           bool isChecked =((ConsoleStrategyItem)futureContainer.Controls[i])
                               .Instance.cbxDeleteStrategy.Checked;
           if(isChecked)
           {
               futureContainers.Controls.Remove(futureContainers.Controls[i]);
           }
        }
     }
}
于 2013-05-07T08:20:35.523 に答える