我使用AutoCompleteMode到我的文本框。它会将银行名称附加到我的文本框中。因此,当我开始使用第一个字母输入时,所有带有第一个字母的银行名称将来到我的文本框的下拉列表中。现在我的问题是 如果用户尝试访问不属于我的下拉列表的数据,则用户不应该访问该文本。所以我希望用户只能托管现有的银行名称。 我使用AutoCompleteCustomSource到文本框下拉。
答案 0 :(得分:0)
尝试类似:
bool foundSome = false;
foreach (var bankName in col)
{
foundSome = bankName.StartsWith(textBox.text);
}
if (foundSome)
//Do some action
您可以在“验证”中编写此代码,以便为在txtbox中插入的每个字符进行预处理。
答案 1 :(得分:0)
实现您需要的最佳方法是使用1个文本框和1个组合框。他们都应该指向同一个集合。
如您所述,文本框将以自动完成模式运行。键入后,组合框值将设置为您的集合中的第一个匹配值。如果没有值匹配 - 组合框值应设置为null或默认数据 Combobox将仅存储相应的数据子集,不可能编辑所选文本。
验证和数据检索将从Combobox值完成。
这种方法的优点:
- 使用大量数据,用户可以更轻松地找到他/她需要的内容
- 较小的代码,用于检查输入值是属于数据集还是强制归属
- 无需验证。
可能的缺点:
- 形式上的另一个控制
- 应实现同步文本框文本和组合框集合的逻辑。