2010-01-21 73 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