将一个表单中的文本框拆分为多个标签,转换为另一个表单

时间:2011-08-03 15:10:44

标签: c#

我需要将信息输入发送到一个表单的文本框中,以另一种形式发送到标签。我现在分开了,但是因为只有一个分割如果用户在文本框中输入多一个空格(比如说First,Middle,Last),第二个表单只会显示第一个和中间。我需要将它拆分两次,以防用户输入两个空格。

这是我目前的代码。

    //Name Split
        if (strTextBox.Contains (' '))
        {
            var fullname = strTextBox;
            var names = fullname.Split(' ');
            // perhaps TODO -- there could be a middle name/initial
            label3.Text = names[0]; // first
            label5.Text = names[1]; // middle initial
        }

        else //without this conditional if a user only enters a first name the app fails.
            label3.Text = strTextBox;

我一直试图解决这个问题,但我似乎无法绕过它。这段代码编译得很好但是我不能让它显示姓氏。

这是我的代码:

    //Name Split
        if (strTextBox.Contains (' '))
        {
            var fullname = strTextBox;
            var names = fullname.Split(' ');
            // perhaps TODO -- there could be a middle name/initial
            label3.Text = names[0]; // first
            label5.Text = names[1]; // middle initial
        }
        else if (strTextBox.Contains (" " + " "))
        {
            var FN = strTextBox;
            var N = FN.Split(' ');
            label3.Text = N[0] + " " + N[1]; // first and middle
            label5.Text = N[2]; // last name
        }
        else //incase only a first name is entered
            label3.Text = strTextBox;
    }

任何建议?

我已经将信息传递给下一个表单了,我只需要修复这个条件,这样我就可以得到所有三个名字,只要用户确实有第一个,中间的,最后一个。

3 个答案:

答案 0 :(得分:4)

如果没有看到某些代码,这可能有点难以解释,但这里有。你需要做这样的事情。

var fullname = StringReceivedFromFirstForm;
var names = fullname.split(" ");
FirstNameLabel.Text = names[0];
SurnameLabel.Text = names[1];

希望这有帮助。

答案 1 :(得分:3)

听起来你有两个不同的问题。

将名称拆分为姓氏。

     string fullName = "john doe"; // "doe, john"
     string firstName;
     string lastName;
     string[] parts = fullName.Split(new string[] {", "}, StringSplitOptions.None);
     if (parts.Length == 1)
     {
        parts = fullName.Split(' ');
        if (parts.Length == 1)
        {
           lastName = fullName;
           firstName = "";
        }
        else
        {
           lastName = parts[1];
           firstName = parts[0];
        }
     }
     else
     {
        lastName = parts[0];
        firstName = parts[1];
     }

将名称从一种形式传递到另一种形式。

myForm2.SetName (firstName, lastName);


public class Form2 : Form
{
   public void SetName (string firstName, string lastName)
   {
      lblFirst.Text = firstName;
      lblLast.Text = lastName;
   }
   ...

答案 2 :(得分:1)

string test = textbox.Text;
char[] splited = new char[]{' '};
foreach (string str in s.Split(splited ))
Console.WriteLine(str);