我有一个我有 10 个文本框的地方,它们被命名为 textbox1、textbox2 等等。我想在单个富文本框中打印所有文本框中的值。有什么办法我可以做到这一点。我目前的做法是:
richTextBox1.Text = label1.Text + "\t:\t" + textBox1.Text + "\n" + label1.Text + "\t:\t" + textBox1.Text;
但是正如您所看到的,为所有文本框输入它会非常麻烦。
for(int i = 1; i < 11; i++){
yourRichTextBox.Text += string.Format("{0}\t:\t{1}\r\n",
yourForm.Controls["label" + i].Text, yourForm.Controls["textBox" + i].Text);
}
注意:如果您在表单类中使用代码,只需替换yourForm
为this
或删除yourForm
。
尝试以下操作:
private string ReadTextboxes()
{
return textbox1.Text + textbox2.Text + textbox2.Text + ...
}
private string SetRichTextbox()
{
richTextBox1.Text = ReadTextboxes();
}
试试这个...
private string GetTextBoxStrings()
{
string richTextString = string.Empty;
List<KeyValuePair<string, string>> TextBoxList = new List<KeyValuePair<string, string>>();
foreach (Control c in this.Controls)
{
if (c is TextBox)
{
TextBoxList.Add(new KeyValuePair<string, string>(((TextBox)c).Name,((TextBox)c).Text));
}
}
TextBoxList = TextBoxList.OrderBy(x => x.Key).ToList();
foreach (var item in TextBoxList)
{
richTextString += item.Value + "\t:\t";
}
return richTextString;
}
然后调用它并分配到richtextBox。
richTextBox1.Text = GetTextBoxStrings();