我有以下代码:
private void nameTextBox_Leave(object sender, EventArgs e)
{
var names = ConfigurationManager.AppSettings.AllKeys
.Where(k => k.StartsWith("name"))
.ToArray();
// Add names to combobox
comboBox.Items.AddRange(names);
}
问题是每次我Tab从文本框中按下时,组合框元素都会加倍。如果里面有Ken、John、Tim,如果我再次按 Tab,它会显示两次。
我尝试在上面的名称中使用 distinct ,但这并没有做任何事情,因为每次都会创建新的实例并保存以前的实例。我不能在添加名称后立即使组合框为空,因为它在代码中单击后面的按钮中使用。
我认为唯一的替代方法是声明一个全局变量并确保其值为 0,然后仅在组合框中插入值,并在插入值后将其更改为 1。但这似乎不是一个好的编码习惯。
有没有更好的方法来完成这项工作?