C# 根据字符列表设置文本框的文本
因此,我有以下表格: 我正在努力实现以下目标: 输入姓名后,我希望只需单击“姓名首字母”文本框即可生成姓名首字母 我找到了以下方法来获取字符串的第一个字符:C# 根据字符列表设置文本框的文本,c#,winforms,split,C#,Winforms,Split,因此,我有以下表格: 我正在努力实现以下目标: 输入姓名后,我希望只需单击“姓名首字母”文本框即可生成姓名首字母 我找到了以下方法来获取字符串的第一个字符: string EngineerName = tb_Name.Text.ToString(); EngineerName.Split(' ').ToList().ForEach(i => Console.Write(i[0] + " ")); 我的问题是,如何将字符列表分配给文本框的文本 我试过: private void Tb_I
string EngineerName = tb_Name.Text.ToString();
EngineerName.Split(' ').ToList().ForEach(i => Console.Write(i[0] + " "));
我的问题是,如何将字符列表分配给文本框的文本
我试过:
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;
}
但这只是用完全相同的名称填充文本框…您需要直接分配它:
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;
您需要将拆分结果分配到某个位置。考虑这个代码片段:
string EngineerName = tb_Name.Text.ToString();
string initials = "";
EngineerName.Split(' ').ToList().ForEach(i => initials += i[0] + " ");
tb_Initials.Text = initials;
您可以这样做:
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];
}
private void Tb\u首字母\u单击(对象发送方,事件参数e)
{
tb_缩写。Text=“”;
字符串EngineerName=tb_Name.Text;
string[]splitted=EngineerName.Split(“”);
对于(int i=0;我给了我一个错误`无法将'void'转换为'string',将每个字母打印到控制台会有什么帮助?@KahnKah我已经修复了它。请注意,您最后还必须执行initials.TrimEnd()
,否则它最后会有一个额外的空间。tb_Name.Text.ToString()
-执行ToString
对于已经是字符串的文本属性是多余的。tb\u Initials.Text+=splitted[i]
-此逻辑似乎有问题。每次单击tb_首字母
文本框时,此代码都不会清除以前的首字母。因此,例如,如果首先单击填充了PB
,然后在下一次单击时,它将变为PBMS
,此时它应该是MS
,因此清除tb_首字母的内容
Tb\u Initials\u Click
函数的开头需要文本框。@RBT true,忘记重置字符串,答案已更新。关于ToString,好吧……这是从他的代码中复制粘贴的:\Tb\u Initials.text=”;
-这行代码给出了编译错误-空字符文本
。