zoukankan      html  css  js  c++  java
  • "form Inheritence",it seems that it's intentionall MS BUG

    Miha Markic :"Mother of all Visual Studio 2005 RTM bugs"

    今天帮同事看一个vs2005的问题!

    问题功能描述:在visual studio2005中实现一个基类的窗体,其它窗体继承于此窗体,目标是想实现窗体的重用,不用每个窗体都重新开始进行UI设计了。

    出现问题:在实现相关label控制,trackBar等控制中都可以很好的完成相关继承。在继承窗体中,被继承窗体设置为private私有的控件不可编辑,protected,public的可编辑等都非常正常。但对于像datagridview,webbrowser的控件却即使在基窗体中设置为public,在vs2005设计环境中各控制的属性也显示恢色不可编辑。

    问题分析解决流程:刚接触到此问题,乍一看好像是对datagridview控制不了解,或放是由于某属性设置错误所至,于是网上查找资料确认此判断是否准确,google到MS的MSDN中的关于窗体继承的相关文档,但经过仔细研究,比较失望的是其中也仅仅是介绍简单的lable等控件的设置介绍。看来只有另找其它了,经过慢长的搜索,终于发现了眉目,一个blog(http://code6421.blogspot.com/2005_09_01_code6421_archive.html)里面提到“被封印的Windows Form Inheritence. 不完全支持Form Inheritence,像DataGridView只允許ReadOnly继承”,看来上面我的推测是错误的,不仅仅设置的问题。接下来敢快google“datagridview Form Inheritence”,发现了一些关于此方面的贴子(http://www.thescripts.com/forum/thread496909.html)此贴子最重一位朋友的回复非常让人感兴趣:

    “No, that's not that problem, it seems that it's intentionall MS BUG
    (Sic!)....
    I've found something like that
    http://cs.rthand.com/blogs/blog_with_righthand/archive/2005/11/10/186.aspx
    The only solution is to do all modyfikation in code (Sic !)....”

    想不到考虑半天的问题,竟然是个bug,快速查看了blog文中提到的东西,印证了这个结论。
    对于此问题,虽然在设计器中不能对datagridview控件进行设计,但仍可以在代码中进行控制,但相对来说,那有在设计器中控制来得快,难怪Miha Markic 说出"Mother of all Visual Studio 2005 RTM bugs"的话!

    后计:上述问题,我在vs.net2003中测试发现,DataGrid控件并不存在类似问题。

    希望这些东西能给大家帮助!

  • 相关阅读:
    51nod 1284:2 3 5 7的倍数 容斥原理
    POJ 2006:Litmus Test 化学公式
    POJ 2039:To and Fro
    POJ 2014:Flow Layout 模拟水题
    南阳722--数独(Dfs)
    Poj2377--Bad Cowtractors(最大生成树)
    并查集知识点总结
    Poj1861--Network(最小生成树)
    杭电2824--The Euler function(欧拉函数)
    杭电1284--钱币兑换问题(有趣)
  • 原文地址:https://www.cnblogs.com/linfuguo/p/490558.html
Copyright © 2011-2022 走看看