-
20-09-2019 - |
题
在窗口形成的文本框可通过给它串的简单列表或通过给它的自定义源只能是一个被制作成自动填充文本框 AutoCompleteCollection这是一个字符串强类型列表。 我想能够添加一键每个string..so,每当被选择的任何建议,我可以抓住该键。
我可能只是画blank..but没有任何人有一个建议? 由于事先
解决方案
在类AutoCompleteStringCollection是不密封的,所以你可以肯定从它派生和创建添加有两个参数的过载:一个关键字和一个值
然后就可以跟踪在一个字典。你必须存储字符串两次(基类的集合在你的字典各一次),但是你可以添加一个查找方法,像这样:
class KeyedAutoCompleteStringCollection : AutoCompleteStringCollection {
private readonly Dictionary<string,string> keyedValues =
new Dictionary<string,string>(StringComparer.OrdinalIgnoreCase);
public void Add(string value, string key) {
base.Add(value);
keyedValues.Add(value, key); // intentionally backwards
}
public string Lookup(string value) {
string key;
if (keyedValues.TryGetValue(value, out key)) {
return key;
}
else {
return null;
}
}
}
其他提示
如果我理解正确的话,你想在文本框中有一个关联值的值(可自动提示)。你可以做的是通过创建一个具有Dictionary<string, string>
文本为重点,你呼叫的“钥匙”作为值什么TextBox
。每当你想查找特定TextBox
值的“钥匙”,你可以查字典吧。
当然,一个TextBox
可能不是代表你的数据是否有必须是一个关键的最佳方式。如果必须有一个键,ComboBox
(与DropDownStyle
设置为ComboBoxStyle.DropDownList
)可能是一个更好的选择。
不隶属于 StackOverflow