工作中,我们发现了微软.net WinForm的一个Bug,会导致窗体设计器自动生成的代码失效,这个Bug从.net4.5到最新的.net4.7.2都存在,一直没有解决。最初是我在教学工作中发现的,后来工作的时候该Bug也常现。
重现步骤:
使用VisualStudio2013/2015/2017/2019创建一个新的Windows窗体程序(使用C#或者VB.net都可以)
新建的默认空白的窗体程序,点击运行,可以正常运行:
这时,我们往窗体拖一个ListView控件,手动添加两列,名称分别为Id/编号、Name/姓名:
运行程序,报错:
点击错误详情,发现窗体自动生成的代码有误,删除后程序正常运行:
可是,一旦对窗体的任何控件进行更改(调整窗体大小,修改窗体属性等),又会导致编译无法通过:
该Bug在DataGridView中也同样出现:
解决方法:
联系微软在下个版本中修正Bug;
不使用Name作为表格列的名称。
题外话:
微软在给我们带来便利的同时,也带给我们很多的麻烦:)