如何删除/删除数据绑定组合框?SelectedIndex=-1不起作用我正在尝试取消选择(删除)我的Windows窗体应用程序中的某些组合框。在我的应用程序中,我有一个Reset方法,它将每个组合的SelectedIndex设置为-1。我所有的组合框都是数据绑定的,即每个组合框都使用数据源填充。我注意到有时我的Reset方法会起作用,即它会取消选择当前选定的项目并将组合留空。但是,其他时候,在我尝试将其设置为-1后,它会直接选择第一项(SelectedIndex=0)。从用户的角度来看,这看起来像是一个错误,因为它并不总是“清除”表单。根据MSDN:“要取消选择当前选定的项目,请将SelectedIndex设置为-1。如果项目是数据绑定项目,则不能将ComboBox项目的SelectedIndex设置为-1。”有谁知道解决方法?非常感谢您使用空白和属性组合comboBox.ResetText();//重置选择值comboBox.SelectedIndex=-1;您可以尝试将SelectedValue或Item设置为null(在VB中为Nothing)我不记得抛出异常的行为。但是,我确实记得我通常在数据绑定后通常通过数据绑定事件将一个名为-1(None)的值插入到组合框中。我建议在List中获取数据并将新值插入到该列表中。现在将组合绑定到列表。只有以下代码对我有用,所以试试:comboBox.ResetText();//framework4.0不确定是否还有人对此感兴趣,现在看到5年后,但我找到了一个非常简单的解决方法。一点都不直观(我是通过查看参考源代码才发现的),但实现起来很简单:ComboBox1.FormattingEnabled=True;是的,仅此而已!如果您好奇,可以仔细阅读源代码以了解发生了什么。@CuppM指出的错误的根本原因似乎是试图在数据源中设置位置:if(!FormattingEnabled||SelectedIndex!=-1){this.DataManager.Position=this.SelectedIndex;我猜它应该只是'&&'而不是'||'在这种情况下,因为代码可能不应该将Position设置为无效值,而不管FormattingEnabled属性如何。无论如何,它提供了一个简单的解决方法。而且,由于空Format属性的默认行为是空操作,因此您无需更改任何其他内容。它只是工作。?(我应该注意,我只在.NET4.7上尝试过,所以我不能说它是否适用于早期版本的.NETFramework。)尝试将null或String.Empty分配给SelectedValue属性。如果您的目标框架是4.0-解决方案如下:安装.NetFramework4.5(不要更改项目的目标框架,只需安装框架)。安装后,此行取消选择数据绑定组合框:combobox.SelectedValue=0;我的值成员是“Id”intprimarykeyautoincrement,所以该字段不包含值0。但是,这不适用于不支持的.net45Windows版本尝试设置[ComboBoxObj].SelectedIndex=-1;这将使它成为空值。-1表示取消选择或取消组合框的值谢谢我有一段时间遇到这个问题,但是如果你使用:'ComboBox.ResetText();'它将使文本“”并使组合框中的项目不受影响。我在我的应用程序中使用以下代码盒子.开始更新();Box.Items.Add("");foreach(数字中的字符串项目){if(项目!=“”)Box.Items.Add(项目);}Box.EndUpdate();Box.ResetText();所以,一旦所有项目都在组合框中,我就结束了Runthemethod。ComboBox1.SelectedItem=null;像这样向您的组合框添加一个空项目:cb.Items.Add("");在此之后,您可以通过选择最后一个cb项目来取消选择组合框:cb.SelectedIndex=cb.Items.Count-1;给你!组合框中的最后一个插槽是空的,但它不会打扰你。你可以吗??您可以尝试此解决方案..dataGrid.DataSource=NothingdataGrid.DataBind()希望对您有所帮助!..:D以上就是C#学习教程:如何删除/删除databindingcombobox?SelectedIndex=-1不起作用所有内容分享,如果对大家有用,还需要了解更多C#学习教程,希望大家多多关注—本文收集自网络,不代表个人观点位置。如涉及侵权,请点击右侧联系管理会员删除。如需转载请注明出处:
