C# 组合框选择的值为空

C# 组合框选择的值为空,c#,winforms,C#,Winforms,用途:VS 2012 我的表单中有一个附加到数据源的组合框。事情进展顺利。当我运行表单时,一切都很好;我可以在下拉列表中选择一个项目,它也会更新到数据源。当我保存或删除所选内容后,需要取消选择/还原所选内容时,就会出现问题(对于该字段值,基本上应为null) 我们的传统系统是在Delphi 3&5中构建的,用户可以右键单击下拉列表,并获得一个名为 空白 其中空白处为所选内容。我在.NET的组合框中找不到任何与用户所选内容相同的内容 您可以使用以下代码在下拉列表中添加名为-选择-(或类似名称)的新

用途:VS 2012

我的表单中有一个附加到数据源的组合框。事情进展顺利。当我运行表单时,一切都很好;我可以在下拉列表中选择一个项目,它也会更新到数据源。当我保存或删除所选内容后,需要取消选择/还原所选内容时,就会出现问题(对于该字段值,基本上应为null

我们的传统系统是在Delphi 3&5中构建的,用户可以右键单击下拉列表,并获得一个名为

空白


其中空白处为所选内容。我在.NET的组合框中找不到任何与用户所选内容相同的内容

您可以使用以下代码在
下拉列表中添加名为
-选择-
(或类似名称)的新项目:

如果您是在xaml中绑定,那么在
页面加载
事件中,您只能写这一行

 drp.Items.Insert(0, new ListItem("-Select-", "NA"));

现在,如果用户想取消选择选项,他/她只需选择
-select-
项。

您可以使用以下代码在
下拉列表中添加一个名为
-select-
(或类似名称)的新项:

如果您是在xaml中绑定,那么在
页面加载
事件中,您只能写这一行

 drp.Items.Insert(0, new ListItem("-Select-", "NA"));

现在,如果用户想要取消选择选项,他/她只需选择
-select-
项。

感谢您的所有回答和建议,我使用了@V4Vendetta的想法并编写了我的解决方案

与在datagridview中单击删除键删除记录类似,我采用了相同的概念,并将我的解决方案与删除键相关联

我所做的是为ComboBox的按键事件创建一个处理程序,如:

private void comboBox_KeyPress(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if (e.KeyCode == Keys.Delete)
    {
            (sender as ComboBox).SelectedIndex = -1;    
    }
}
并链接到每个可用的组合框

ComboBox1.KeyDown += new KeyEventHandler(comboBox_KeyPress);
ComboBox2.KeyDown += new KeyEventHandler(comboBox_KeyPress);

现在,当用户在选择/激活组合框的同时单击删除键时,组合框变为空白。

在感谢您所有的回答和建议的同时,我使用了@V4Vendetta的想法并编写了我的解决方案

与在datagridview中单击删除键删除记录类似,我采用了相同的概念,并将我的解决方案与删除键相关联

我所做的是为ComboBox的按键事件创建一个处理程序,如:

private void comboBox_KeyPress(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if (e.KeyCode == Keys.Delete)
    {
            (sender as ComboBox).SelectedIndex = -1;    
    }
}
并链接到每个可用的组合框

ComboBox1.KeyDown += new KeyEventHandler(comboBox_KeyPress);
ComboBox2.KeyDown += new KeyEventHandler(comboBox_KeyPress);

现在,当用户在选择/激活组合框时单击“删除”键时,它将变为空。

通常,我只会在数据源底部添加一个额外的空白项。您是否尝试将
SelectedIndex
正常设置为-1,我将在数据源的底部添加一个额外的空白项。您是否尝试将
SelectedIndex
设置为-1