我有以下代码:
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);
}
Run Code Online (Sandbox Code Playgroud)
问题是每次我Tab从文本框按下,comboBox元素继续加倍.如果有Ken,John,Tim在那里,如果我再次按Tab键,它会显示两次.
我尝试在上面的名称中使用distinct,但是每次创建新的瞬时时都不会执行任何操作,并保存上一个.添加名称后,我无法将comboBox设置为空,因为它在代码中单击后面的按钮时使用.
我认为唯一的替代方法是声明一个全局变量,并确保其值为0,然后只在comboBox中插入值,并在插入值后将其更改为1.但这似乎不是一个好的编码实践.
有没有更好的方法来完成这项工作?
comboBox.Items.Clear()
之前添加AddRange
.所以整个块应该是.
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.Clear();
comboBox.Items.AddRange(names);
}
Run Code Online (Sandbox Code Playgroud)