1

我的 Windows 窗体表单中有三个选项卡。根据在 中选择的 RadioButton TabPages[0],我在相关的 TabPage 上添加了一些动态控件。如果Button_Click添加了控件,但问题是我无法从另一个(不相关的)TabPage 中删除动态添加的控件。

这是我的代码:

Label label235 = new Label();
TextBox tbMax = new TextBox();
label235.Name = "label235";
tbMax.Name = "txtBoxNoiseMax";
label235.Text = "Noise";
tbMax.ReadOnly = true;
label235.ForeColor = System.Drawing.Color.Blue;
tbMax.BackColor = System.Drawing.Color.White;
label235.Size = new Size(74, 13);
tbMax.Size = new Size(85, 20);

if (radioButton1.Checked)
{
    label235.Location = new Point(8, 476);
    tbMax.Location = new Point(138, 473);

    tabControl.TabPages[1].Controls.Add(label235);
    tabControl.TabPages[1].Controls.Add(tbMax);

    tabControl.TabPages[2].Controls.RemoveByKey("label235");
    tabControl.TabPages[2].Controls.RemoveByKey("tbMax");
}
else
{
    label235.Location = new Point(8, 538);
    tbMax.Location = new Point(138, 535);

    tabControl.TabPages[1].Controls.RemoveByKey("label235");
    tabControl.TabPages[1].Controls.RemoveByKey("tbMax");

    tabControl.TabPages[2].Controls.Add(label235);
    tabControl.TabPages[2].Controls.Add(tbMax);
}

我在哪里犯了这个错误?

4

2 回答 2

1

首先,tbMax它的名字不是“tbMax”,而是“txtBoxNoiseMax”。因此,一方面,它将无法在RemoveByKey.

您每次都在制作新的控件。

于 2010-04-22T07:32:16.100 回答
0

正如 lc 已经提到的:

您命名了您的 TextBox 变量tbMax,但您将其命名为txtBoxNoiseMax。如果您查看RemoveByKey的描述,您会发现它适用于Name属性。所以你应该改变

tbMax.Name = "txtBoxNoiseMax";

进入

tbMax.Name = "tbMax";
于 2010-04-22T07:40:00.387 回答