在 Csharp winform 中将所有空字符串文本框(“”)设置为空值的简单方法是什么?

发布于 2024-12-06 05:49:46 字数 149 浏览 0 评论 0原文

假设我不想使用

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

倚栏听风 2024-12-13 05:49:46

简单的方法是循环遍历每个控件,请参阅下面的代码

 foreach (Control C in this.Controls)
 {
       if (C is TextBox)
       {
            if (C.Text == "")
            {
                 C.Text = null;
             }
       }
 }

Simple way is Loop through every control, see the below code

 foreach (Control C in this.Controls)
 {
       if (C is TextBox)
       {
            if (C.Text == "")
            {
                 C.Text = null;
             }
       }
 }
握住你手 2024-12-13 05:49:46

这是另一种方式

foreach(Control txt in this.Controls)
{
   if(txt.GetType() == typeof(TextBox))
         if(string.IsNullOrEmpty(txt.Text))
            txt.Text = null;
}

希望有帮助

It is one more way

foreach(Control txt in this.Controls)
{
   if(txt.GetType() == typeof(TextBox))
         if(string.IsNullOrEmpty(txt.Text))
            txt.Text = null;
}

Hope it helps

东北女汉子 2024-12-13 05:49:46

您可以迭代给定表单的 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 of IEnumerable<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.

菊凝晚露 2024-12-13 05:49:46

试试这个:

foreach(Control c in this.Controls)
{
      if (c.GetType().FullName == "System.Windows.Forms.TextBox")
      {
          TextBox t = (TextBox)c;
          t.Clear();
      }
}

Try this:

foreach(Control c in this.Controls)
{
      if (c.GetType().FullName == "System.Windows.Forms.TextBox")
      {
          TextBox t = (TextBox)c;
          t.Clear();
      }
}
无人问我粥可暖 2024-12-13 05:49:46

您可以从文本框控件创建派生控件,并覆盖其文本属性。

You can create a derived control from textbox control, and override its text property.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文