C# 防止DataGridView的列在设计器中消失
我一直让我的一些DataGridView中的列在设计器中随机消失,当然,当我运行应用程序时也不会显示任何内容。目前,我甚至无法将数据源设置为“无”,然后再返回到绑定源(在过去一直有效),因此我想我需要创建一个新的DataGridView并将数据源重新绑定到它。问题是我添加了几个监听器,设置了列宽,等等。我无法跟踪我对每个表所做的一切(我不应该这样做!)。我厌倦了一遍又一遍地重复同样的事情 我做了一些搜索,发现其他人也有这个问题,这可能是Visual Studio中的一个bug(我正在使用Visual Studio Express 2013)。所以我的问题是:我是不是在做什么导致这种情况发生,我能防止它再次发生吗 编辑C# 防止DataGridView的列在设计器中消失,c#,datagridview,datasource,designer,C#,Datagridview,Datasource,Designer,我一直让我的一些DataGridView中的列在设计器中随机消失,当然,当我运行应用程序时也不会显示任何内容。目前,我甚至无法将数据源设置为“无”,然后再返回到绑定源(在过去一直有效),因此我想我需要创建一个新的DataGridView并将数据源重新绑定到它。问题是我添加了几个监听器,设置了列宽,等等。我无法跟踪我对每个表所做的一切(我不应该这样做!)。我厌倦了一遍又一遍地重复同样的事情 我做了一些搜索,发现其他人也有这个问题,这可能是Visual Studio中的一个bug(我正在使用Visu
我已经确定了原因,但还没有找到解决办法。当我更改
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”属性,而不会丢失任何列。希望这对仍然面临这个问题的任何人都有帮助。我用更具体的信息编辑了这篇文章,这些信息可能有助于确定问题,更重要的是,解决方案。