2013-04-02 50 views
0

我对C#非常新。我通过实验学到了最好的东西,但是当然,我有时会完全被困住。我将尝试用我目前拥有的编程语言的知识来尽我所能地解释我的问题。C#WinForms - 向文本框中的每行添加文本

我一直在尝试创建一个简单的工具来编辑/添加文本行到text file。我做了很多研究,特别是在这个网站上,所有的信息都非常有帮助。我的问题是,双方都在multi-line textbox内向文本的单行添加文本。

因此,让我们说我有一个textbox与2现有的行;我想在一行的两侧旁边添加一些文本,并对下一行执行相同的操作。以下是文字会是什么样子之前和按钮被击中后一个例子:

以前

不一样的是不同于

A不同于BA不同于B

“之前”中的两行应在textBox1(多行)中,并且将作为“After”插入到richTextBox1中。

希望我已经解释得很清楚了,我不知道从哪里开始。

谢谢。

+0

你尝试过什么?如果你分享你的代码,人们会更好地帮助你。 –

+0

除了亚历山大的建议,我还没有尝试过任何东西。我在他的回答中添加了一条评论,以便进一步协助我如何做到我在该评论中所说的内容。 – Raxdiam

+0

谢谢大家的帮助,我已经完成了我所要做的,感谢这个社区。 – Raxdiam

回答

0

在情况下,如果你有多文本框:

var list = new List<string>(textBox1.Lines); 

for (int i = 0; i < list.Count; ++i) 
{ 
    list[i] = "A" + list[i] + "B"; 
} 

textBox1.Lines = list.ToArray(); 
+0

我发现这个效果最好。我所要做的就是将最后一行“textBox1”更改为“richTextBox1”。我现在唯一的问题是,我需要将行添加到richTextBox中的现有文本中作为新行。这我不知道该怎么做。尽管我非常感谢你的帮助。 – Raxdiam

+0

只需将最后一行更改为** textBox1.Lines = textBox1.Lines.Concat(list).ToArray(); ** – Alexander

1

尝试

"{0} is not the same as {1} {2} is different than {3}" 

在TextBox1中。然后使用:

textbox2.Text = String.Format(textbox1.Text, A, B, A, B); 
+0

你需要把你的信件放在引号中,因为它们不是变量。 – CathalMF

+0

编辑答案。谢谢你提醒我:D –

+0

我其实是在字符串中的意思。格式(textbox1.Text,“A”,“B”,“A”,“B”); – CathalMF

0
string[] arr = textBox1.Text.Split(Environment.Newline); 
//then loop over each line and add whatever you want :- 

     foreach (string s in arr) 
    { 
     //add here 
    } 

我想这是好足够的暗示下手:)

2

如果你知道你index必须更新文本,那么你应该能够直接使用insert插入值string

例子:

 //Get the text box value 
     var formatedTextboxString = this.textbox1.Text; 

     formatedTextboxString = formatedTextboxString.Insert(0, "A "); 

     formatedTextboxString = formatedTextboxString.Insert(21, "B"); 

     //Place the formated text back to the richTextBox 
     this.richTextBox1.Text = formatedTextboxString;