Winform 軟件開發過程中,使用可視化設計器 大大提高了應用程序布局效率 ,今天遇到設計器報錯,如下錯誤截圖(1-1) ,記錄一下排錯過程。
前期編寫用戶控件,從工具箱拖出控件時報錯,截圖如下(1-1)。程序實際運行過程中不存在此類錯誤。后來發現,是vs 2017 設計器呈現控件外觀時,默認執行了自定義控件的 類構造或 Load 方法引起的 。 那為什么程序實際運行沒異常?
於是,在拋出異常點加了 try catch ,檢查控件調用方 , 如下截圖(1-2) , 這時設計器異常顯示如(1-3) 。 原來是從IDE 啟動目錄加載了控件,初使化環境並非 應用程序目錄。因為用戶控件依賴應用程序啟動目錄配置信息和一些其它DLL , 而IDE環境不存在這些配置依賴項。
解決方式:
1. 在用戶控件初使化如 構造或 Load 中加上 Try Catch .
2. 減少用戶控件初使化過程中對外部依賴項,如可將一些外部依賴項通過傳參方式注入。
3. 詳參 用戶控件 DesignModen 屬性,標識是否處於設計器模式。
圖1-1
圖1-2
圖1-3