【问题标题】:Why aren't my TextBoxes being counted?为什么我的文本框没有被计算在内?
【发布时间】:2015-09-24 02:50:31
【问题描述】:

我正在尝试以表格形式更改 TextBoxes 中的 Text,但如果不单独执行它们,我不知道如何计算我的所有 TextBoxes...

我尝试了以下代码;但是,我的int i 返回0

int i = 0;

foreach (Control c in this.Controls)
{
    if (c.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
    {
        i++;
        ((TextBox)c).Text = CleanInput(((TextBox)c).Text);
    }
}

我只是对如何获取我所有的 TextBoxes 并检查它们感到困惑......

【问题讨论】:

  • 另外,如果你需要在控件中搜索控件,你需要添加一些递归!
  • 这正是我需要做的! @Graffito 在下面有正确的方法。

标签: c# .net forms textbox system.web.ui.webcontrols


【解决方案1】:

试试这个:

int i = 0;

foreach (Control c in this.Controls)
{
   if (c is TextBox)
    {
       i++;
       ((TextBox)c).Text = CleanInput(((TextBox)c).Text);
    }
}

【讨论】:

    【解决方案2】:

    如果所有 TextBox 都不是“this”的子级,则使用递归方法:

    CleanTextBoxes(this)
    
    private void CleanTextBoxes(Control TheControl)
    { 
      foreach (Control c in TheControl.Controls)
      {
        if (c is TextBox) ((TextBox)c).Text = CleanInput(((TextBox)c).Text);
        else CleanTextBoxes(c) ;
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-11-28
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      • 2023-03-17
      • 1970-01-01
      • 2021-02-16
      • 1970-01-01
      相关资源
      最近更新 更多