2009-07-03 62 views
0

我想實現我的WinForms應用這種模式(我不喜歡它,但它是按客戶要求):用戶控件事件後驗證

  • 我編輯對象的性質一個DetailsControl(由我們開發的用戶控件),當用戶試圖離開控件時,則驗證並保存
  • 如果它無效,或者在保存期間發生錯誤,那麼控件一定不能留下(它在列表/細節部分)

我的想法是這樣的:

  • 上驗證,檢查我的目的是好的,否則我取消事件
  • 上驗證,保存我的對象,如果發生錯誤,我取消事件

不幸,驗證不可取消,並且在驗證/驗證之前觸發離開。驗證後是否有可取消的事件,可以防止失去焦點?

如果沒有,我會將所有的邏輯移入驗證中,但是我想保留與保存錯誤分開的正式驗證。

回答

1

article列出了引發Validated/Validating事件時的常見事件順序。驗證後沒有可取消的事件。我認爲沒有一些額外的魔法,你是不走運的。

如果您真的擔心使用該類的人可能會在驗證事件處理程序中對其自己進行其他驗證檢查,則可以使用另一個自定義的,取消驗證事件來擴展該類。然後,您可以在調用base.OnValidating之前在OnValidating期間引發此自定義事件。

+0

謝謝,我找不到那篇文章... 我的擔心只是將驗證與保存我的對象分開,但這不是一個大問題,我們是唯一使用我們的控件 – Filini 2009-07-06 08:43:47