【发布时间】:2016-06-17 16:43:47
【问题描述】:
我有一个组合框,我已经可以向其中添加项目,并且我希望能够在按下删除键时删除我选择的项目。
这是我现在使用的代码。
private void commandComboBox_KeyDown(object sender, KeyEventArgs e)
{
var myComboBox = (ComboBox)sender;
string text = myComboBox.Text;
if (e.KeyCode == Keys.Enter)
{
myComboBox.Items.Add(myComboBox.Text); // Add
}
if (e.KeyCode == Keys.Delete)
{
myComboBox.Items.Remove(myComboBox.SelectedItem);
}
}
当我单击组合框并开始输入然后按 Enter 键时,我会听到 Windows 声音(不确定是哪个声音),然后该项目被添加到列表中。 当我点击下拉按钮时,我会看到带有我在上面输入的文本的项目。当我点击删除时,该项目消失了(至少我认为它确实如此),然后当我点击其他地方时,我得到了这个异常
System.ArgumentOutOfRangeException: InvalidArgument=“0”的值对“索引”无效。
参数名称:索引
此外,当我点击下拉按钮时,我仍然看到空白处
所以我的问题是如何正确地从 ComboBox 中删除项目 :)
另外,如果有比 ComboBox 更好的东西,请提一下,TY
【问题讨论】:
-
有些奇怪。您如何将
myComboBox.Text添加到自身?该错误似乎意味着您正在尝试访问组合框的索引 0,但如果组合框为空,则索引 0 将不存在。 -
哪一行会导致该错误?你有 SelectedIndexChanged 事件做些什么吗?
-
只是为了澄清我的代码中没有对组合框的任何其他引用,这是我为组合框设置的唯一事件处理程序
-
顺便说一句,谢谢 Cody 编辑我的问题 :) 这种格式还是新手
-
关键是请将图片上传到我们的托管网站 imgur.com。使用工具栏上的链接来执行此操作。这确保了图像永远不会“过期”,并且这个问题在未来很长一段时间内总是有意义的。 (当您发布此内容时,您可能无法上传图片。我不确定。为了阻止垃圾邮件,发布图片需要一定的最低声望。凭借您现在拥有的 10-15 声望,您将能够发布图片。所以,要记住一些事情。)否则:好问题,有据可查,欢迎来到 Stack Overflow!