C# 防止DataGridView的列在设计器中消失

C# 防止DataGridView的列在设计器中消失,c#,datagridview,datasource,designer,C#,Datagridview,Datasource,Designer,我一直让我的一些DataGridView中的列在设计器中随机消失,当然,当我运行应用程序时也不会显示任何内容。目前,我甚至无法将数据源设置为“无”,然后再返回到绑定源(在过去一直有效),因此我想我需要创建一个新的DataGridView并将数据源重新绑定到它。问题是我添加了几个监听器,设置了列宽,等等。我无法跟踪我对每个表所做的一切(我不应该这样做!)。我厌倦了一遍又一遍地重复同样的事情 我做了一些搜索,发现其他人也有这个问题,这可能是Visual Studio中的一个bug(我正在使用Visu

我一直让我的一些DataGridView中的列在设计器中随机消失,当然,当我运行应用程序时也不会显示任何内容。目前,我甚至无法将数据源设置为“无”,然后再返回到绑定源(在过去一直有效),因此我想我需要创建一个新的DataGridView并将数据源重新绑定到它。问题是我添加了几个监听器,设置了列宽,等等。我无法跟踪我对每个表所做的一切(我不应该这样做!)。我厌倦了一遍又一遍地重复同样的事情

我做了一些搜索,发现其他人也有这个问题,这可能是Visual Studio中的一个bug(我正在使用Visual Studio Express 2013)。所以我的问题是:我是不是在做什么导致这种情况发生,我能防止它再次发生吗

编辑
我已经确定了原因,但还没有找到解决办法。当我更改
DataGridView
后面的
DataTable
时,会发生这种情况,例如,在
DataTable
中添加或删除一列,然后将该列添加或删除到
DataGridView
。一旦我这样做了,所有列都会从设计器中消失,包括我添加的任何侦听器代码等。我真的很感激能在这方面提供一些帮助,因为我一直在做一个需求不断变化的项目,所以在这一点上,
DataTable
s不可能是静态的。而且很难记住列宽、侦听器/工具提示等。我添加了哪些列等。这看起来完全像是设计器中的一个bug。

我也遇到了类似的问题。在designer.cs文件中进行更改。
您将在designer.cs文件中找到所有列。您仍然可以使用add column添加新列。

我最近遇到了一个类似的问题,即绑定到数据源的Datagridview。当我试图向Datagridview添加一个新列时,按下列编辑器窗口中的OK按钮,所有列都会消失

原因: 在我的例子中,我试图添加的新列在数据库中被命名为“override”,这是C#中的一个保留字。设计师试图用现有名称添加列,这当然会把事情搞砸

解决方案:
在将更改保存到Datagridview之前,只需在列编辑器窗口中更改列的Name属性。无需更改数据库或其他任何地方的任何内容

我的项目遇到了这个问题

问题描述:我正在向我的DataGrid添加一个新的数据绑定列。在“编辑列”窗口中按“确定”后,所有列均消失

解决方案:很遗憾,您将丢失DataGrid列配置。保存项目并重新加载。列将再次出现(如果没有,请再次设置数据源)

副作用:此错误最糟糕的部分是,以前与DataGrid关联的所有组件仍将存在于项目中,我无法使用designer或解决方案资源管理器删除它们

项目清理:我必须按照以下步骤清理我的项目:

  • 转到解决方案资源管理器中的DataGrid列。它将显示在项目的.Designer.cs文件中
  • 删除或注释文件的行
  • 错误将出现在您的错误列表中
  • 删除或注释错误中报告的行(位于InitializeComponent()方法上)
警告:我做了建议的更改,项目没有问题。但是,在进行我所描述的手动更正之前,请始终备份您的项目

祝你好运,编码愉快。


可能是个虫子。但对我来说,从图中所示的添加列选项添加列是有效的,而不是从编辑列选项添加列。

我使用的是VS 2013,面临着同样的问题。我打开设计表单,编辑datagridview的列,然后按OK,但之后datagridview中的所有列都消失了

我通过重命名所有以(下划线)开头的列,然后按OK来修复这个问题,一切都正常。可能是VS错误或我的列名包含保留字


我对名称以?结尾的列也有同样的问题?。使用别名而不使用?解决了这个问题。顺便说一句,如果在列消失后,您在IDE中再次关闭并打开表单,您会发现这些列仍然存在,但您辛苦应用的所有格式都消失了。感谢上帝提供了源代码控制。

我在VS2015中遇到了同样的问题,我的专栏从dataGridView中消失了。在我的例子中,原因是我有一个与Form1中的字符串变量同名的列。我的解决方案是重命名字符串变量及其所有引用。在那之后,我可以编辑“Columns”属性,而不会丢失任何列。希望这对仍然面临这个问题的任何人都有帮助。

我用更具体的信息编辑了这篇文章,这些信息可能有助于确定问题,更重要的是,解决方案。