一次性从c#中的所有文本框中获取值?

时间:2015-01-25 08:21:55

标签: c# textbox

我想在字符串中点击按钮时捕获所有文本框值,而不是为c#中的每个文本框明确写出这一行的每一行

string atv1 = TextBox1.Text;
string atv2 = TextBox2.Text;

它应该找到所有文本框并创建一个字符串(join)。

任何人都可以帮忙!!

(制作一些asp.net网站时的窗口形式(c#))

4 个答案:

答案 0 :(得分:1)

您可以使用StringBuilder来加入" (大多数软件类型使用术语连接)字符串。要获取所有TextBox,您可以选择表单上的任何控件作为文本框。简单的解决方案是

var s = new StringBuilder();
foreach (var textbox in this.Controls.OfType<TextBox>())
{
   s.AppendLine(textbox.Text)
}

Console.WriteLine(s.ToString());

但是,TextBox可以位于Control的{​​{1}}内。所以要处理这种情况,你需要递归。我将让您搜索StackOverflow以了解如何执行此操作。

答案 1 :(得分:1)

简明扼要:

String.Join(",",Form.Controls.OfType<TextBox>().Select(c => c.Text))

答案 2 :(得分:0)

foreach (Control c in this.Controls)
{
  if (c is TextBox)
  {
     var txt = (TextBox)c;
     //Do Something
  }
}

答案 3 :(得分:0)

更优雅的方式:

var objTextboxValues = this.Controls.OfType<TextBox>().Select(obj => obj.Text).ToList();
var varJoinedText = String.Join(", ", objTextboxValues);

原始答案:

var varAllTextBoxValues = "";

foreach (Control objControl in this.Controls)
    if (objControl is TextBox)
        varAllTextBoxValues += ((TextBox)objControl).Text;
    }

MessageBox.Show(varAllTextBoxValues);