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

清除选中选项卡中所有文本框的文本share

时间:2023-04-10 12:33:32 C#

清除选中选项卡中所有文本框的文本我有一个带有选项卡控件的表单,每个选项卡都有很多文本框、标签和按钮。我希望用户清除所选标签文本框中的所有文本。我试过了上面的代码抛出InvalidCastException并使用消息Unabletocastobjectoftype'System.Windows.Forms.Button'totype'System.Windows.Forms.TextBoxInvalidCastExceptionUnabletocastobjectoftype'System.Windows.Forms.Button'键入'System.Windows.Forms.TextBox。请问我做错了什么,我该如何改正?在foreach循环中使用OfType()。privatevoidresetCurrentPageToolStripMenuItem_Click(objectsender,EventArgse){foreach(TextBoxtintabControl1.SelectedTab.Controls.OfType()){t.Text="";}}备选方案:foreach(tabControl1.SelectedTab.Controls中的控制控件){TextBoxtext=controlasTextBox;if(text!=null){text.Text="";}}在网上找到这个并且它有效如果(textBox==null)ClearTextBoxes(child);elsetextBox.Text=string.Empty;}}privatevoidresetCurrentPageToolStripMenuItem_Click(objectsender,EventArgse){ClearTextBoxes(tabControl1.SelectedTab);只需循环遍历所选选项卡中的所有控件并检查控件类型是否为TextBox并在清除文本之前清除文本。foreach(tabControl1.SelectedTab.Controls中的控件项){if(item.GetType().Equals(typeof(TextBox))){item.Text=string.Empty;如果您在tabcontrol中嵌套了文本框。你需要在这里写一个递归方法,因为ofType方法不会返回你嵌套的文本框。privatevoidResetTextBoxes(Controlcntrl){foreach(Controlcincntrl.Controls){ResetTextBoxes(c);if(cisTextBox)(casTextBox).Text=string.Empty;或者如果你只是在TabControl基础层有一个文本框,你就可以使用它。以上是C#学习教程:清空选中选项卡中所有文本框的文本。希望大家多多关注foreach(vartbintabControl1.OfType()){tb.Text=string.Emtpy;}vartextBoxNames=this.tabControl1.SelectedTab.Controls.OfType();foreach(varitemintextBoxNames){vartextBoxes=tabControl1.SelectedTab.Controls.Find(item.Name,true);foreach(TextBoxtextBoxintextBoxes){textBox.Clear();}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理会员删除。如需转载请注明出处: