c#.net 的窗体应用程序中, 在form.load() 中用代码动态生成的控件,在form的其他控件中如何将这个控件删除?谢谢
在其他控件的事件中如何获取到动态生成的控件(通过name什么的都可以),能给个代码举例说明吗?谢谢!
追答比如你动态生成了一个TextBox,名称为txtExample,现在你要在按钮点击事件中移除它,那么就在按钮点击事件中查找这个控件,然后移除就是了:
foreach (Control control in this.Controls)
if (control.Name == "txtExample")
this.Controls.Remove(control);
也可以根据控件类型来查找,或是移除多个控件,都是一个道理,先找到它,然后操作它,希望对你有帮助
太谢谢了,成功啦!再请教如果从一个窗体Form1中点击按钮打开一个Form2窗体,再从Form2窗体点击一个按钮中删除Form1窗体上的某个控件,又改如何编写代码呢?控件都是通过代码添加的,希望能给出代码举例说明,再次感谢!
追答同样的道理,只是多找一下窗体而已,比如你要移除Form1上名为textBox1的控件,那么在Form2的按钮事件中找到窗体,再找到控件,就可以操作了:
foeach(Form form in Application.OpenForms)
if(from.Name=="Form1")
foreach(Control control in form.Controls)
if(control.Name=="textBox1")
form.Controls.Remove(control);
当然还有其它的方式,比如使用委托、改变对象的可见性级别、将窗体本身做为参数传递等等,这里是根据前一个回答来的,便于理解,希望对你有帮助