2015-04-04 150 views
0

我現在正在尋找的結果是將textBox1.Text分割成儘可能多的文本框,只要分割符號存在('+'或'#'例如)將textbox.text分割爲其他文本框

因此,每個新的文本框應該只有兩個標誌之間的字 例如:

textBox1.text = 「一個+二+三」;那麼textBox2.text =「one」; textBox3.text =「two」; textBox3.text =「three」;

下面的兩個例子達到90%的我需要什麼,但我仍然無法弄清楚如何把每個值在一個單獨的textBox.text:

string str = "one\n \ntwo\n \nthree\n \n \nfour"; 
string[] result = Regex.Split(str, "\n\\s*"); 
for (int i = 0; i < result.Length; i++) 
    MessageBox.Show(result[i]); 

string input = "one)(two)(three)(four)(five"; 
string[] result = input.Split(new string[] { ")(" }, StringSplitOptions.None); 
foreach (string s in result) 
    MessageBox.Show(s); 
+0

這是一個Windows應用程序(WPF或WinForms)或一個Web應用程序(MVC或WebForms)? – epotter 2015-04-04 01:42:04

+0

@epotter它的Windows應用程序(WinForms) – 2015-04-04 10:00:01

回答

0

您需要拆分結果(就像你已經做過的那樣),然後爲每個結果動態創建一個文本框並設置其文本。您的代碼應如下所示:

int i = 0; 
foreach (var item in result) 
{ 
    var textBox = new TextBox(); 
    textBox.Location = new System.Drawing.Point(0,i++*25); 
    textBox.Text = item; 
    this.Controls.Add(textBox); 
} 

整數i用於確保每個文本框出現在不同的位置,而不是彼此之上。

+0

那是我真正想要的,非常感謝,但我可以走得更遠嗎? 我想知道如何使用拆分文本框中的文本值作爲新的搜索詞。因此,「負擔+的證據」應該被分成3個搜索詞,而不是一個。 我正在使用SQL服務器CE和C#WinForms ..感謝您的時間 有關更多解釋,請檢查我的其他未答覆的問題:https://stackoverflow.com/questions/29409857/c-sharp-sql-server-ce -treat字-之後定義的符號或 - 作爲一種sepera – 2015-04-04 19:57:33

0

像這樣的事情

string[] result = textBox1.text.Split('+'); 

foreach (int i=0;i<result.Lenght;i++) 
{ 
TextBox box = new TextBox(); 
box.Name = "textBox"+i; 
box.Text = result[i]; 
somewhere.Add(box); 
} 
+0

感謝您的時間,但我無法讓您的代碼工作,原諒我,但我完全是一個新手。它也有一些類似於(textBox1。** T ** ext)和(Leng ** th **)的拼寫錯誤。 – 2015-04-04 20:14:59

+0

以及我並不是說它是確切的代碼。只是試圖推動你的答案。但我想你是從另一個答案中得到的。 – btevfik 2015-04-04 22:31:52

相關問題