根据字符列表设置文本框的文本

时间:2017-07-10 08:08:16

标签: c# winforms split

所以我有以下表格:

enter image description here

我想要实现的目标如下:

输入名称后,我希望只需单击首字母文本框即可生成名称的首字母。

我找到了以下方法来获取字符串的第一个字符:

string EngineerName = tb_Name.Text.ToString();
EngineerName.Split(' ').ToList().ForEach(i => Console.Write(i[0] + " "));

我的问题是,如何将字符列表分配到textbox的文字?

我试过了:

private void Tb_Initials_Click(object sender, EventArgs e)
        {
            string EngineerName = tb_Name.Text.ToString();
            EngineerName.Split(' ').ToList().ForEach(i => Console.Write(i[0] + " "));

            tb_Initials.Text = EngineerName;

        }

但是这只是填写了具有完全相同名称的文本框......

3 个答案:

答案 0 :(得分:5)

您需要在某处分配拆分结果。请考虑以下代码段:

string EngineerName = tb_Name.Text.ToString();
string initials = "";
EngineerName.Split(' ').ToList().ForEach(i => initials += i[0] + " ");

tb_Initials.Text = initials;

答案 1 :(得分:2)

您可以这样做:

private void Tb_Initials_Click(object sender, EventArgs e)
    {
        tb_Initials.Text = "";
        string EngineerName = tb_Name.Text;
        string[] splitted = EngineerName.Split(' ');
        for(int i = 0; i<splitted.Length; i++)
            tb_Initials.Text += splitted[i];

    }

答案 2 :(得分:0)

您需要直接分配:

string EngineerName = tb_Name.Text.ToString();
var initials = "";
EngineerName.Split(' ').ToList().ForEach(i => initials += i[0] + " ");
//trim the extra space in the end.
initials = initials.TrimEnd();
tb_Initials.Text = initials;