gpt4 book ai didi

c# - 删除运行时创建的控件

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:41 26 4
gpt4 key购买 nike

我写了一些代码在运行时创建一个额外的文本框。我正在使用 metro 框架,但这对我的问题不重要。

当您单击按钮时,私有(private) on_click 事件会创建一个文本框:

private void BtnAddButton_Click(object sender, EventArgs e)
{
MetroFramework.Controls.MetroTextBox Textbox2 = new MetroFramework.Controls.MetroTextBox
{
Location = new System.Drawing.Point(98, lblHandy.Location.Y - 30),
Name = "Textbox2",
Size = new System.Drawing.Size(75, 23),
TabIndex = 1
};
this.Controls.Add(Textbox2);
}

我现在要做的是使用另一个按钮的点击事件,再次删除文本框。我不确定的是,如果我必须只删除控件或对象本身。此外,我既不能访问 Textbox2 控件,也不能从其他地方访问该对象。

private void BtnRemoveTextbox2_Click(object sender, EventArgs e)
{
this.Controls.Remove(Textbox2);
}

这不起作用,因为其他表单不知道 Textbox2。实现我的目标的最佳方式是什么?我是否必须公开任何内容?如果是,我该怎么做?

最佳答案

在选择删除它之前,您必须先找到它。

private void BtnRemoveTextbox2_Click(object sender, EventArgs e)
{
MetroFramework.Controls.MetroTextBox tbx = this.Controls.Find("Textbox2", true).FirstOrDefault() as MetroFramework.Controls.MetroTextBox;
if (tbx != null)
{
this.Controls.Remove(tbx);
}
}

这里,Textbox2 是您的文本框的 ID。请确保在添加之前设置文本框控件的 ID。

关于c# - 删除运行时创建的控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45940221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com