我想在字符串中点击按钮时捕获所有文本框值,而不是为c#中的每个文本框明确写出这一行的每一行
string atv1 = TextBox1.Text;
string atv2 = TextBox2.Text;
它应该找到所有文本框并创建一个字符串(join)。
任何人都可以帮忙!!
(制作一些asp.net网站时的窗口形式(c#))
答案 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);