答读者问
原发问问题1:
在重写之后,点击bntProtected按钮时,前后出现了2次“我现在位于继承窗体Form2中。……”的信息框。
应该是运行了2次bntProtected_Click()函数,能不能只让它出现一次的?
谢谢,回答!
亲爱的读者您好,很感谢您对于章立民研究室的支持,有关于您提到的问题,回复如下:
当父表单按钮的Modifiers属性是Protected时,按下继承子表单的按钮会依序触发父表单,以及子表单的按钮事件,所以会执行两次事件处理常式,而此种现象正是继承的效果。如果希望仅触发一次事件处理常式,请尝试将父表单上按钮的Modifiers属性设定为Private,或者于继承表单中加入新的按钮控制项,来实作事件处理常式。
原发问问题2:
关于窗体的继承在您的著作中已有论述,十分感谢!
但是如果作为基类的窗体中有自己的上下文菜单。即使在基类中设置其及其各个Item的 Modifiers属性是“Public”,而在其派生类中属性依然无法通过设计器进行更改。但是可以通过使用语句进行更改,为什么呢?(版本是C# 2005)。
亲爱的读者您好,很感谢您对于章立民研究室的支持,有关于您提到的问题,回复如下:
实作继承的表单时,大家会发现使用Visual Studio Designer无法修改继承表单中,部分.NET Framework 2.0控制项属性的问题,目前已知此状况是个功能上的限制,以现今的Visual Studio 2005来说,还是只能够透过自行撰写程式码的方式,来进一步修改控制项的属性,可能未来的Service Pack,或者是新版本的Visual Studio会进行功能上的强化,以满足大家的需求。更完整的讯息,请参考如下所示的连结:
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=115264