如何动态删除列表中的项目?

时间:2016-12-19 12:26:12

标签: c#

我正在做一个小项目来回答问题。我有两个问题:

  1. 如何动态删除答案?
  2. 我如何上下移动答案,即:重新组织它们?
  3. 它看起来像this,当我点击按钮(图像上显示“A ...”)时,它将分别删除单选按钮和文本框。

    每个项目(单选按钮,文本框,按钮)都在一个列表中,我认为单击该按钮将删除列表中的项目,这些项目位于相同的位置/索引。

    我添加这些项目的方式是这样的(它可能会有所帮助)。

    if (contar < 10)
    {
        contar++;
        radioButtons.Add(new MetroFramework.Controls.MetroRadioButton());
        btnRmv.Add(new MetroFramework.Controls.MetroButton());
        for (int i = 0; i < radioButtons.Count; i++)
        {
            Textboxes.Add(new MetroFramework.Controls.MetroTextBox());
            Textboxes[i].Height = 20;
            Textboxes[i].Width = 580;
            Textboxes[i].Anchor = (System.Windows.Forms.AnchorStyles.Top);
            Textboxes[i].Location = new System.Drawing.Point(txtPergunta.Location.X - 25, txtPergunta.Location.Y+txtPergunta.Height+ i * 25);
            PanelCentro.Controls.Add(Textboxes[i]);
            BtnAdd.Location = new System.Drawing.Point(BtnAdd.Location.X, Textboxes[i].Location.Y + 25);
    
            radioButtons[i].Anchor = (System.Windows.Forms.AnchorStyles.Top);
            radioButtons[i].Location = new System.Drawing.Point(Textboxes[i].Location.X - 20, Textboxes[i].Location.Y);
            PanelCentro.Controls.Add(radioButtons[i]);
    
            btnRmv[i].Height = 20;
            btnRmv[i].Width = 20;
            btnRmv[i].Anchor = (System.Windows.Forms.AnchorStyles.Top);
            btnRmv[i].Text = "delete";
            btnRmv[i].Location = new System.Drawing.Point(Textboxes[i].Location.X + Textboxes[i].Width + 20, Textboxes[i].Location.Y);
            PanelCentro.Controls.Add(btnRmv[i]);
            btnRmv[i].Click += RemoverResposta;
        }
    }
    

    我使用for循环来删除项目,但它从未删除正确的项目(即:我点击的按钮位置相同的项目),它全部删除。

0 个答案:

没有答案