我正在開發使用Visual Studio 2010和C#的Word 2010插件。驗證/編輯事件不在類庫中觸發窗體
我創建了一個簡單的窗體,帶有兩個文本框和一個Ok按鈕。
確定按鈕的原因驗證屬性設置爲true。
這兩個文本框的CausesValidation屬性設置爲false,並設置其驗證和驗證屬性。這是爲了使它們僅在單擊確定按鈕時進行驗證,而不是在更改焦點時進行驗證。
如果表單代碼是在Word插件中定義的,則驗證和驗證的事件按預期運行 - 單擊「確定」按鈕時。我想讓表單可重用,所以我將表單移動到單獨的類庫。該表單很大程度上按預期工作,但驗證和驗證事件從未運行上述配置。
有人知道爲什麼會出現這種情況嗎?這是一個錯誤嗎?
這聽起來很像Winforms/UI問題。你有沒有嘗試從簡單的Windows應用程序調用你的類庫代碼?這樣,您至少可以弄清問題是來自您的課程庫還是來自VSTO。 – Mathias 2010-10-16 16:12:47
嗨。我現在重新創建了一個非常簡單的情況:創建一個包含一個文本框和一個按鈕的表單庫。按鈕會導致invalidation被設置爲true,並且文本框會導致validation被設置爲false。我創建了另一個表單項目,併爲它添加了一個繼承的表單。表單加載,但文本框驗證和驗證的事件永遠不會觸發(除非我設置導致驗證文本框爲真,然後驗證事件觸發時,我點擊按鈕)。 – zikoziko 2010-10-29 13:04:23
看來,如果我將基本窗體的AutoValidate屬性設置爲Disable,並將文本框的CausesValidation屬性設置爲true,並在按鈕單擊中調用this.ValidateChildren()方法,我可以使事情工作! – zikoziko 2010-10-29 13:17:47