[工作札記]03: 微軟Winform窗體中ListView、DataGridView等控制項的Bug,會導致程式編譯失敗,影響範圍:到最新的.net4.7.2都有
工作中,我們發現了微軟.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作為表格列的名稱。
題外話:
微軟在給我們帶來便利的同時,也帶給我們很多的麻煩:)