[工做札记]03: 微软Winform窗体中设计上的Bug,会致使程序编译失败,影响范围:到最新的.net4.7.2都有

工做中,咱们发现了微软.net WinForm的一个Bug,会致使窗体设计器自动生成的代码失效,这个Bug从.net4.5到最新的.net4.7.2都存在,一直没有解决。最初是我在教学工做中发现的,后来工做的时候该Bug也常现。.net

  • 重现步骤:

  使用VisualStudio2013/2015/2017/2019建立一个新的Windows窗体程序(使用C#或者VB.net均可以)设计

  新建的默认空白的窗体程序,点击运行,能够正常运行:orm

  这时,咱们往窗体拖一个ListView控件,手动添加两列,名称分别为Id/编号、Name/姓名:blog

  运行程序,报错:io

  点击错误详情,发现窗体自动生成的代码有误,删除后程序正常运行:编译

  但是,一旦对窗体的任何控件进行更改(调整窗体大小,修改窗体属性等),又会致使编译没法经过:List

  该Bug在DataGridView中也一样出现:程序

 

解决方法:方法

  1. 联系微软在下个版本中修正Bug;
  2. 不使用Name做为表格列的名称。

题外话:im

  微软在给咱们带来便利的同时,也带给咱们不少的麻烦:)

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

补充:

有些朋友以为这不是Bug,以为不符合设计预期的不是Bug,那么,若是设计自己就有问题呢?

咱们再来一个实验,咱们把刚才那个窗体的Name属性,改成Name:

运行程序,一切正常:

好,咱们把名字改回来,再把DataGridView的属性,改成Name,编译,报错了:

好,一样都是Windows控件,在一样的地方设置属性,一个能用,一个不能用,你说这不是设计上的问题?不是Bug吗?

——“这有两根金条,你告诉我,哪根是高尚的?哪根是龌龊的?”

相关文章
相关标签/搜索