无法从数据绑定Winforms下拉列表中删除选项卡

无法从数据绑定Winforms下拉列表中删除选项卡,winforms,user-controls,controls,Winforms,User Controls,Controls,这有点奇怪,但我已经挣扎了几个小时,我不明白发生了什么 我想知道是否还有其他人遇到过这个问题,也许可以解释一下。我正在构建一个简单的Winforms应用程序,并尝试使用许多内置控件 基本上,我有一个带有用户控件和一些数据捕获字段的表单。其中3个字段是下拉列表,在用户控件上我有一个bindingSource控件,它直接绑定到产品类 在运行时,我向BindingSource提供Product类的一个实例,该类包含ProductType的属性。为了简单起见,我还向Product类添加了一个列表Prod

这有点奇怪,但我已经挣扎了几个小时,我不明白发生了什么

我想知道是否还有其他人遇到过这个问题,也许可以解释一下。我正在构建一个简单的Winforms应用程序,并尝试使用许多内置控件

基本上,我有一个带有用户控件和一些数据捕获字段的表单。其中3个字段是下拉列表,在用户控件上我有一个bindingSource控件,它直接绑定到产品类

在运行时,我向BindingSource提供Product类的一个实例,该类包含
ProductType
的属性。为了简单起见,我还向Product类添加了一个
列表
ProductTypes,该类在查询时会自动加载,这意味着我可以使用相同的bindingSource并选择
ProductTypes
数据成员作为dropdownlist的数据源

运行表单后,列表将完美绑定,我可以看到列出的所有产品类型,我可以选择其中一种,然后单击tab或单击下一个字段。但显然,所选的值不会绑定,因为我没有为下拉列表选择任何绑定SelectedValue,只有一个数据源。只要我确保下拉列表通过绑定到Bindings SelectedValue来修改产品实例,然后运行表单,列表仍然可以完美填充,只要我不从下拉列表中进行选择,我就可以通过控件进行制表。如果我从下拉列表中进行选择,则下拉列表将保持焦点。我无法为爱情或金钱进行制表,甚至不能单击表单上的“取消”按钮,右上角的“关闭”按钮是我唯一可以单击的有效按钮,我不能单击任何其他字段或下拉列表。一旦做出选择,这将影响所有三个下拉列表

有人知道我遗漏了什么吗

我尝试过更改一些内容,并通过向下拉列表值提供字符串[]而不是对象的成员获得了一些成功。这似乎可行,但却违背了使用数据绑定的目的,不是吗


感谢您的帮助

我只是猜测一下,因为我现在没有时间设置测试和确认,但是你在做任何验证吗?我似乎记得,如果内容未验证,数据绑定控件将不允许您离开。即使您没有明确说明,也可以尝试将CausesValidation设置为False,以查看是否有任何类型的验证在幕后进行,这至少可以给您一个提示。

对于InfrasticST下拉列表(对于其他winform下拉列表可能不是真的):如果您有“LimitToList”如果设置为true,您可能会陷入一个下拉列表中,无法在未意识到的情况下退出。使用ItemNotInList甚至可以触发一条警告消息。

感谢您在这方面的投入,帮助我解决了这个问题

在我的例子中,结果是在我的ComboBox.Validating事件的一个EventHadler中引发了一个异常。很难找到,因为IDE没有向我显示这个异常。我能够修改异常行为(在debug菜单中),并让它显示正在抛出的任何InvalidOperationException,然后我能够跟踪它


正如Tom所建议的,关闭CuasesValidation是解决问题的关键。

非常感谢Tom-真不敢相信事情竟如此简单!显示由于是测试应用程序而不包括验证检查时发生的情况;-)我们能捕捉到这样的验证错误吗?那会是什么?