Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET组合框验证?_Vb.net - Fatal编程技术网

VB.NET组合框验证?

VB.NET组合框验证?,vb.net,Vb.net,我有一个绑定到表字段的组合框,我想验证选择,因为根据上下文,只有某些选择是有效的。在On Validating事件中,如何在更改选择之前获取值或在table.field中获取值?WinForms ComboBox控件不提供拦截值更改并取消它的功能。您可以使用Validating事件(或者,如您所述,将组合框子类化并覆盖OnValidating),但这些仅允许您将焦点保持在控件上。您不能通过验证事件实际“取消”值更改 有几个第三方(例如DevExpress)软件包提供组合框,允许您在值更改时检查初

我有一个绑定到表字段的组合框,我想验证选择,因为根据上下文,只有某些选择是有效的。在On Validating事件中,如何在更改选择之前获取值或在table.field中获取值?

WinForms ComboBox控件不提供拦截值更改并取消它的功能。您可以使用
Validating
事件(或者,如您所述,将组合框子类化并覆盖
OnValidating
),但这些仅允许您将焦点保持在控件上。您不能通过验证事件实际“取消”值更改


有几个第三方(例如DevExpress)软件包提供组合框,允许您在值更改时检查初始值和新值,并根据需要取消更改,但是System.Windows.Forms中提供的ComboBox没有。

WinForms ComboBox控件不提供拦截值更改并取消它的功能。您可以使用
Validating
事件(或者,如您所述,将组合框子类化并覆盖
OnValidating
),但这些仅允许您将焦点保持在控件上。您不能通过验证事件实际“取消”值更改


有多个第三方(例如,DevExpress)软件包提供组合框,允许您在值更改时检查初始值和新值,并根据需要取消更改,但System.Windows.Forms中提供的组合框没有。谢谢。我快速浏览了一下他们的网站。它花了大约美元。但我最担心的是,我不知道他们的组合与VS中的组合相比可能会遗漏什么。你在使用DevExpress吗?@bochur1:我现在不使用它们,但我在上一个雇主中广泛使用了它们。虽然包装可能很昂贵,但控制装置本身的质量非常高。如果您想要的只是一个可以取消更改的组合框,那么可能会有更经济的选择,但随着WinForms控件库的发展,DXperience包是最好的(如果不是最好的)组合框之一。>如果您想要的只是一个可以取消更改的组合框,那么它们是否允许组合框中有多个列?否则,我要找的就是取消。我还有什么其他选项?@bochur:DevExpress-ComoBox允许多列。至于其他选项,我从未做过研究,但我想大多数控件包都包含这样的组合框。谢谢。我快速浏览了一下他们的网站。它花了大约美元。但我最担心的是,我不知道他们的组合与VS中的组合相比可能会遗漏什么。你在使用DevExpress吗?@bochur1:我现在不使用它们,但我在上一个雇主中广泛使用了它们。虽然包装可能很昂贵,但控制装置本身的质量非常高。如果您想要的只是一个可以取消更改的组合框,那么可能会有更经济的选择,但随着WinForms控件库的发展,DXperience包是最好的(如果不是最好的)组合框之一。>如果您想要的只是一个可以取消更改的组合框,那么它们是否允许组合框中有多个列?否则,我要找的就是取消。我还有什么其他选项?@bochur:DevExpress-ComoBox允许多列。至于其他选项,我从未做过研究,但我认为大多数控件包都包含这样一个组合框。