2013-04-02 79 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;