2010-01-21 72 views
1

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

回答

1

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

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

+0

谢谢。 我快速浏览了他们的网站。花费几美元。但我最担心的是不知道我可能会错过他们的组合,反对VS中的那个。你在使用DevExpress吗? – Alex

+0

@ bochur1:我现在不使用他们,但我在我的最后一位雇主中广泛使用他们。虽然这个软件包可能很昂贵,但是这些控件本身是非常高质量的。如果你正在寻找的是一个ComboBox,你可以取消修改,那么可能会有更经济的选择,但是随着WinForms控件库的推出,DXperience软件包是最好的(如果不是最好的)之一。 –

+0

>如果你正在寻找的是一个组合框,你可以取消更改 他们是否允许ComboBox中有多列? 否则,我正在寻找的是取消。我还有什么其他选择? – Alex