原發問問題1:
章老師你好,我最近在看你寫的《Visual C# 2005 程序開發與界面設計祕訣》這本書。在254頁所提到的重寫基窗口中控件的事件處理函數時,發現個問題。
在重寫之後,點擊bntProtected按鈕時,前後出現了2次“我現在位於繼承窗體Form2中。……”的信息框。
應該是運行了2次bntProtected_Click()函數,能不能只讓它出現一次的?
謝謝,回答!
親愛的讀者您好,很感謝您對於章立民研究室的支持,有關於您提到的問題,回覆如下:
當父表單按鈕的Modifiers屬性是Protected時,按下繼承子表單的按鈕會依序觸發父表單,以及子表單的按鈕事件,所以會執行兩次事件處理常式,而此種現象正是繼承的效果。如果希望僅觸發一次事件處理常式,請嘗試將父表單上按鈕的Modifiers屬性設定爲Private,或者於繼承表單中加入新的按鈕控制項,來實作事件處理常式。
原發問問題2:
關於窗體的繼承在您的著作中已有論述,十分感謝!
但是如果作爲基類的窗體中有自己的上下文菜單。即使在基類中設置其及其各個Item的 Modifiers屬性是“Public”,而在其派生類中屬性依然無法通過設計器進行更改。但是可以通過使用語句進行更改,爲什麼呢?(版本是C# 2005)。
但是如果作爲基類的窗體中有自己的上下文菜單。即使在基類中設置其及其各個Item的 Modifiers屬性是“Public”,而在其派生類中屬性依然無法通過設計器進行更改。但是可以通過使用語句進行更改,爲什麼呢?(版本是C# 2005)。
親愛的讀者您好,很感謝您對於章立民研究室的支持,有關於您提到的問題,回覆如下:
實作繼承的表單時,大家會發現使用Visual Studio Designer無法修改繼承表單中,部分.NET Framework 2.0控制項屬性的問題,目前已知此狀況是個功能上的限制,以現今的Visual Studio 2005來說,還是隻能夠透過自行撰寫程式碼的方式,來進一步修改控制項的屬性,可能未來的Service Pack,或者是新版本的Visual Studio會進行功能上的強化,以滿足大家的需求。更完整的訊息,請參考如下所示的連結:
[url]http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=115264[/url]
[url]http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=115264[/url]