删除/删除动态创建的文本框[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除/删除动态创建的文本框[重复]相关的知识,希望对你有一定的参考价值。

这个问题与以下内容完全相同:

我有一个代码,它将在运行时创建一个文本框。

 public System.Windows.Forms.TextBox AddNewTextBox()
        {
            System.Windows.Forms.TextBox txt = new System.Windows.Forms.TextBox();
            this.Controls.Add(txt);
            dynamicTextBoxes.Add($"tb{cLeft}", txt);
            txt.Top = cLeft * 25;
            txt.Left = 100;
            txt.Multiline = true;
            txt.Size = new System.Drawing.Size(100,100);
            txt.BringToFront();
            txt.BorderStyle = BorderStyle.None;


            txt.Text = "TextBox " + this.cLeft.ToString();
            cLeft = cLeft + 1;
            return txt;
        }

我还将控件添加到字典中

 private Dictionary<string, TextBox> dynamicTextBoxes = new Dictionary<string, TextBox>();

现在我想删除文本框。

我正在使用此代码删除/删除文本框。

dynamicTextBoxes[$"tb{cLeft - 1}"].Dispose();

但是这行代码只删除了最后创建的文本框。

我的问题是如何在每次按钮点击时逐个删除所有或选定的文本框。

答案

首先你需要使用Children而不是Controls,其次你应该添加控件到一些容器,如GridStackPanel,...

System.Windows.Controls.TextBox txt = new System.Windows.Controls.TextBox();
yourGrid.Children.Add(txt);

请注意,命名空间应该是System.Windows.Controls

以上是关于删除/删除动态创建的文本框[重复]的主要内容,如果未能解决你的问题,请参考以下文章

JQuery .on() 没有将点击事件绑定到动态创建的元素[重复]

在jsp页面动态添加,删除文本框模块

ViewPager2 无法动态添加删除片段

jQuery添加/删除文本框[重复]

C#动态增加行删除行

从绑定到数据集的组合框中删除重复项