从文本框设置组合框文本
本文关键字:文本 组合 设置 | 更新日期: 2023-09-27 18:34:34
我有用户提交的内容加载到我们办公室的 c# winform 中进行处理,然后再正式添加到数据库。用户可以将"引荐来源网址"作为两个文本字段提交 - 名字和姓氏。在办公室里,我想有一个组合框将所有现有的引荐来源网址加载进来,然后是名称的前几个字母,以将组合框向下推进到它需要的区域。我想做这样的事情,取名称的前两个字母并使用它来初始化组合框。
if (txtrefFirstName.TextLength > 2)
{
string firstStart = "" + txtrefFirstName.Text[0] + txtrefFirstName.Text[1];
firstStart = firstStart.ToUpper();
ddlReferring.SelectedText.StartsWith(firstStart);
}
else
ddlReferring.Text = "";
有什么想法或建议可以让它发挥作用吗?
谢谢
大卫·
你可以写这样的东西...
foreach (string item in ddlReferring.Items)
{
if (item.StartsWith(firstStart))
{
ddlReferring.SelectedText = item;
break;
}
}
假设 ddl 的数据源是字符串对象列表,您应该能够对数据源本身进行一些比较。 我倾向于使用 Linq 来做这样的事情,但这不是绝对必要的,只是更短。
if (txtrefFirstName.TextLength > 2)
{
string firstStart = txtrefFirstName.Text.Substring(0,2).ToUpper();
string Selection = ddlReferring.DataSource.Where(a=>a.StartsWith(firstStart)).FirstOrDefault();
ddlReferring.SelectedText = Selection ?? "";
}
else
ddlReferring.Text = "";
选择行也可以直接来自项目集合
string Selection = ddlReferring.Items.OfType<string>().Where(a=>a.StartsWith(firstStart)).FirstOrDefault();
或者,如果您真的不想使用 Linq...
string Selection = "";
foreach (object item in ddlReferring.Items)
if (item.ToString().StartsWith(firstStart))
{
Selection = item.ToString();
break;
}
即使 ddl 的数据不是字符串列表,也可以使用类似的方法,只需确保适当地强制转换项目并比较正确的值即可。