清除表单中的所有 RichTextBox (VB.NET)
我有一个包含 25 个 RichTextBox 的表单。当用户按下按钮时我需要清除它们。
我认为这与:Me.Controls.Clear
有关,但我不确定。
感谢您的任何帮助。 :)
I have a form with 25 RichTextBoxes. I need to clear them all when a user presses a button.
I think it's something to do with: Me.Controls.Clear
but I'm not sure.
Thanks for any help. :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Me.Controls.Clear 将从 Controls 集合中删除所有控件。您需要迭代 Controls 中的所有控件,如果控件的类型为 RichTextBox,则对该控件调用一些明确的方法。
Me.Controls.Clear will remove all controls from the Controls collection. You need to iterate over all controls in Controls and if control is of type RichTextBox then call some clear method on that control.
你可以这样做。它会清除表单上的所有文本框。如果你想保存任何富文本框,你可以检查
ctl.name
。You can do it this way. It clears all the textboxes on the form. If you want to save any richtextboxes, you can check
ctl.name
.我认为你可以使用 linq 来选择所有文本框...类似这样的东西(未经测试且使用 ac# 语法),
然后你可以执行 foreach 循环清除它。
I think you could use linq to select all the textboxes... something like this (not tested and with a c# syntax)
then you can do a foreach loop clearing it.
显然,任何
from ctrl in form.Controls...
方法都会跳过面板/其他容器中的任何(丰富)文本框。这也是 MarkJ 在评论 Jonathan 的回答时所说的。下面是一个例程,用于显式递归所有控件并清除 (1) 没有子项且 (2) 是(丰富)文本框的任何控件。
将表单作为根控件传递以开始递归以清除所有所需的子控件:
ClearControl(Me)
。Apparently any
from ctrl in form.Controls...
approach skips any (rich)textboxes that live within a panel/other container. This is also what MarkJ said in comment to Jonathan's answer.Here's a routine to explicitly recurse over all controls and clear any control that (1) has no children, and (2) is a (rich)textbox.
Pass the form as the root control to start the recursion to clear all desired subcontrols:
ClearControl(Me)
.