text框项目复制到不同的text框

本文关键字:text 复制 项目 | 更新日期: 2023-09-27 17:59:52

我想在我的一个项目中执行一项任务

我想把一个文本框中的项目转移到不同的文本框中。我可以通过这个实现

string[] values = textBox1.Text.Split('#');
textBox2.Text = values[0];
textBox3.Text = values[1];
textBox4.Text = values[2];
textBox5.Text = values[3];
textBox6.Text = values[4];

我想要的是在5个不同的文本框中复制5个项目。必须从原始文本框中删除这5项

**假设我在一个名为textBox1的文本框中有10个项目,由#分隔。

例如:a#b#c#d#e#f#g#h#i#j

现在点击一个名为button1 的按钮

发生以下事件

a在textBox2/b在textBox3/c在textBox4/d在textBox5/e在textBox6 中

-现在,当我再次点击按钮1时,

我想要留在文本框1中的5个项目必须像这个

f在textBox2/g在textBox3/h在textBox4/i在textBox5/j在textBox6

text框项目复制到不同的text框

我将开始编写一个方法,尝试拆分字符串,并使用一个值来限制要返回的拆分字符串的数量。相同的方法应该从输入字符串中删除已拆分的部分,并返回带有已拆分字符串的数组和原始字符串的其余部分。

string[] SplitWithLimit(ref string test, int limit)
{
    int count=0;
    int pos=-1;
    // Try to find the position of the # at the limit count
    while((pos = test.IndexOf('#', pos+1)) != -1)
    {
        count++;
        if(count == limit)
            break;
    }
    string toSplit;
    if(pos != -1)
    {
        // Take the left part of the string to be splitted
        // till the position of the char at limit boundary
        toSplit = test.Substring(0, pos);
        test = test.Substring(pos+1);
    }
    else
    {
        // If there are less # than required, take all the string
        toSplit = test;
        test = "";
    }
    // Now split only the required part   
    string[] parts = toSplit.Split(new char[] {'#'}, StringSplitOptions.RemoveEmptyEntries);
    return parts;
}

现在,只需要处理此操作的结果,将原始文本框设置为剩余文本框,并将接收文本框设置成拆分阵列

TextBox2.Text =string.Empty;
TextBox3.Text =string.Empty;
TextBox4.Text =string.Empty;
TextBox5.Text =string.Empty;
TextBox6.Text =string.Empty;
string test = TextBox1.Text; //"a#b#c#d#e#f#g#h#j"
string[] parts = SplitWithLimit(ref test, 5);
if(parts.Length > 0)
    TextBox2.Text = parts[0];
if(parts.Length > 1)
    TextBox3.Text = parts[1];
if(parts.Length > 2)
    TextBox4.Text = parts[2];
if(parts.Length > 3)
    TextBox5.Text = parts[3];
if(parts.Length > 4)
    TextBox6.Text = parts[4];
TextBox1.Text = test;

试试这个,一旦用户点击按钮,以前的值将被自动删除,并被新的取代

    int noOfTimesClicked=0;
    private void FillTextBoxes()
    {
          string[] values = textBox1.Text.Split('#');
          textBox2.Text = values[noOfTimesClicked] != null ? values[noOfTimesClicked] : "";
          textBox3.Text = values[(noOfTimesClicked) + 1] != null ? values[(noOfTimesClicked) + 1] : "";
          textBox4.Text = values[(noOfTimesClicked) + 2] != null ? values[(noOfTimesClicked) + 2] : "";
          textBox5.Text = values[(noOfTimesClicked) + 3] != null ? values[(noOfTimesClicked) + 3] : "";
          textBox6.Text = values[(noOfTimesClicked) + 4] != null ? values[(noOfTimesClicked) + 4]:"";
          noOfTimesClicked = noOfTimesClicked + 5;
    }

希望这能帮助您:)

要从Origin TextBox中删除,请使用:(仅示例)

TextBox1.Text = TextBox1.Text.Substring(10);

如果你确定有5个项目:

 private void button_Click(object sender, EventArgs e)
 {  
       string[] values = textBox1.Text.Split('#');
        if (values.Length >= 5)
        {
            textBox2.Text = values[0];
            textBox3.Text = values[1];
            textBox4.Text = values[2];
            textBox5.Text = values[3];
            textBox6.Text = values[4];
            //change the destination
             if (values.Length == 5)
                textBox1.Text = textBox1.Text.Substring(9); 
            else if (values.Length > 5)
                textBox1.Text = textBox1.Text.Substring(10); 
        }
  }