在 Csharp winform 中将所有空字符串文本框(“”)设置为空值的简单方法是什么?
假设我不想使用
if (string.IsNullOrEmpty(textbox1.Text))
{
textbox1.Text = null;
}
表单中的每个文本框控件,是否有更简单的方法来做到这一点?
Suppose I don't want to use
if (string.IsNullOrEmpty(textbox1.Text))
{
textbox1.Text = null;
}
for every textbox controls in form, is there a easier way to do it ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
简单的方法是循环遍历每个控件,请参阅下面的代码
Simple way is Loop through every control, see the below code
这是另一种方式
希望有帮助
It is one more way
Hope it helps
您可以迭代给定表单的 ControlCollection,例如 frmMain.Controls
现在这将是基本的 Control 对象,因此您需要测试它是否是 TextBox 类型。
.NET 2.0 - 您必须手动检查
.NET 3.0+ - 使用
.OfType
扩展方法仅提供IEnumerable
列表请注意,从表单中迭代此列表只会给出您在该表格上的文本框。如果将文本框绑定到容器,它将不会显示在那里。
最安全的选择是编写一个递归函数,遍历所有控件集合并将引用传递给测试函数以执行测试和更新。
You can iterate through the ControlCollection of the given form, e.g. frmMain.Controls
Now this will be the basic Control object, so you would need a test to see if it is of type TextBox.
.NET 2.0 - you'll have to check this manually
.NET 3.0+ - use the
.OfType<TextBox>
extension method to give you only a list ofIEnumerable<TextBox>
Note that iterating through this from the form will only give you text boxes on that form. If you bind text boxes to a container it won't show up there.
Safest bet would be to write a recursive function that walks through all the control collections and passes the reference to your test function to perform your test and update.
试试这个:
Try this:
您可以从文本框控件创建派生控件,并覆盖其文本属性。
You can create a derived control from textbox control, and override its text property.