2013-09-19 2 views
0

У меня есть то, где у меня есть 10 текстовых полей, и они называются textbox1, textbox2 и т. Д. Я хочу напечатать значения во всех текстовых блоках в одном богатом текстовом поле. есть ли способ, которым я могу это сделать. путь я делаю это в настоящее время:Как печатать значения в нескольких текстовых ящиках в richtextbox

richTextBox1.Text = label1.Text + "\t:\t" + textBox1.Text + "\n" + label1.Text + "\t:\t" + textBox1.Text; 

, но как вы можете видеть, что это будет очень обременительно ввести его для всех текстовых полей.

+0

использование StringBuilder(): http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx – Zaki

+0

есть в любом случае, чтобы петля на имя текстового поля? – Kratos

+0

@Kratos Почему здесь 'label1.Text' здесь? –

ответ

2
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.

+0

этот код не работает !!! – Kratos

+0

ничего не отображается. – Kratos

+0

@Kratos ** Это только потому, что вы набрали «текстовое поле» до того, как после повторного сканирования своего вопроса это «textBox» **, просто замените «textbox» на «textBox» в моем коде. –

0

попробовать что-то вроде следующего:

private string ReadTextboxes() 
{ 
    return textbox1.Text + textbox2.Text + textbox2.Text + ... 
} 

private string SetRichTextbox() 
{ 
    richTextBox1.Text = ReadTextboxes(); 
} 
0

Просто попробуйте с этим ...

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(); 
Смежные вопросы