将textbox.text分割为其他文本框

将textbox.text分割为其他文本框

问题描述:

我现在正在寻找的结果是将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

您需要拆分结果(就像你已经做过的那样),然后为每个结果动态创建一个文本框并设置其文本。您的代码应如下所示:

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://*.com/questions/29409857/c-sharp-sql-server-ce -treat字-之后定义的符号或 - 作为一种sepera – 2015-04-04 19:57:33

像这样的事情

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