在我的應(yīng)用程序中namespace = DRT,我正在創(chuàng)建從其相應(yīng)的 Windows 控件類派生的控件類(例如,按鈕、文本框),例如,internal abstract class DRT_Button_Abstract : Button{ ....}internal class DRT_Button_CancelSearch : DRT_Button_Abstract{ ....}internal class DRT_Button_StartSearch : DRT_Button_Abstract{ ....}我目前總共有 13 個(gè)派生類,它們派生自我的一個(gè)抽象或 Windows 控件類。成功構(gòu)建后,我會(huì)在工具箱上看到我的控件類(例如,DRT_Button_CancelSearch和DRT_Button_StartSearch),并且我成功地將它們放到了我的主窗體上。暫時(shí)一切正常,但最終,我將打開主 form.cs [Design](即 UI 設(shè)計(jì)器),它會(huì)顯示The variable '{control property name}' is either undeclared or was never assigned.我的某些控件組合的錯(cuò)誤。當(dāng)我檢查主窗體 Designer.cs 文件時(shí),所有控件的預(yù)期代碼都存在,除了預(yù)期的new語句。它們不存在于主窗體 Designer.cs 文件中。例如,我希望看到this.drt_Button_CancelSearch = new DRT.DRT_Button_CancelSearch();但它不見了我嘗試忽略錯(cuò)誤,進(jìn)入 UI 設(shè)計(jì)器窗口重新應(yīng)用丟失的控件,但問題只是在新應(yīng)用的控件上重復(fù)到底他媽發(fā)生了什么?有沒有辦法從這種情況中恢復(fù)過來?
1 回答

胡說叔叔
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
這很可能是 Designer 無法清除/重新加載其緩存的問題。你能做的并不多。過去我:
關(guān)閉并重新打開所有具有用戶控件的設(shè)計(jì)器
將所有控件放在一個(gè)單獨(dú)的項(xiàng)目中(在同一個(gè)解決方案中)
將所有控件放在單獨(dú)的解決方案/Visual Studio 實(shí)例中,并設(shè)置對(duì)控件的 dll(甚至 nuget 包)的正確引用
對(duì)于前兩個(gè)選項(xiàng),我取得了不同程度的成功。重新打開設(shè)計(jì)器不是很方便,不起作用。
最后一個(gè)選項(xiàng)是最好的,但也是最煩人的,因?yàn)槊看握{(diào)整都需要重新構(gòu)建項(xiàng)目并更新參考/包。
還要確保您創(chuàng)建的所有控件都具有公共默認(rèn)構(gòu)造函數(shù)并且在使用此構(gòu)造函數(shù)時(shí)運(yùn)行良好。
- 1 回答
- 0 關(guān)注
- 143 瀏覽
添加回答
舉報(bào)
0/150
提交
取消