当前位置: 首页 > 编程语言 > C#

如何清除窗体中所有textBoxes的文字?分享

时间:2023-04-11 11:04:07 C#

如何清除表单中所有textBoxes的文字?privatevoidCleanForm(){foreach(varcinthis.Controls){if(cisTextBox){((TextBox)c).Text=String.Empty;}}}上述方法不起作用,不清除控件。编译正常,但什么都不做。有任何想法吗?我喜欢拉姆达?privatevoidClearTextBoxes(){Actionfunc=null;func=(controls)=>{foreach(Controlcontrolincontrols)if(controlisTextBox)(controlasTextBox).Clear();否则函数(控制。控制);};功能(控制);}祝你好运!几周前我们遇到了这个问题。如果您设置断点并深入研究this.Controls,问题就会暴露出来:您必须递归遍历所有子控件。代码可能如下所示:privatevoidCleanForm(){traverseControlsAndSetTextEmpty(this);}privatevoidtraverseControlsAndSetTextEmpty(Controlcontrol){foreach(varcincontrol.Controls){if(cisTextBox)((TextBox)c).Text=String.Empty;traverseControlsAndSetTextEmpty(c);您的文本框可能位于面板或其他容器内,而不是直接位于表单内。您需要递归地遍历每个子控件的Controls集合。privatevoidCleanForm(Controlctrl){foreach(varcinctrl.Controls){if(cisTextBox){((TextBox)c).Text=String.Empty;}if(c.Controls.Count>0){CleanForm(c);}}}当您最初调用ClearForm时,传递这个或页面(我认为是“这个”)。这用于清除表单中的所有控件,如文本框、复选框、单选按钮等。您可以添加所需的不同类型。){((TextBox)c).Clear();}如果(c.HasChildren){ClearTextBoxes(c);}if(cisCheckBox){((CheckBox)c).Checked=false;}if(cisRadioButton){((RadioButton)c).Checked=false;我改进/修复了我的扩展方法。publicstaticclassControlsExtensions{publicstaticvoidClearControls(thisControlfrm){foreach(controlcontrolinfrm.Controls){if(controlisTextBox){control.重置文本();}if(control.Controls.Count>0){control.ClearControls();}}}}试试这个:以上是C#学习教程:如何清除窗体中所有textBoxes的文本?如果分享的内容对你有用,需要进一步了解C#学习教程,希望你多多关注——vart=Form.Controls.OfType().AsEnumerable();foreach(TextBoxitemint){item.Text="";}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢