C# 添加新列将删除datagrid视图的所有现有列
我正在使用datagridview,其中我在设计模式下添加了列,但它不是数据绑定的。此网格在很长一段时间内工作正常。现在我想在datagrid视图中插入一个新列,我无法添加该列。如果我添加该列,则会删除datagridview的所有现有列。我甚至无法编辑现有列,因为同样的事情正在发生(删除datagrid view的所有列).我在谷歌上搜索了太多,找不到可能的解决方案。如果有人遇到同样的问题,请提供解决方案。 注意:我没有以编程方式添加任何行或列。这是一个使用c#.net vs2010的windows应用程序C# 添加新列将删除datagrid视图的所有现有列,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,我正在使用datagridview,其中我在设计模式下添加了列,但它不是数据绑定的。此网格在很长一段时间内工作正常。现在我想在datagrid视图中插入一个新列,我无法添加该列。如果我添加该列,则会删除datagridview的所有现有列。我甚至无法编辑现有列,因为同样的事情正在发生(删除datagrid view的所有列).我在谷歌上搜索了太多,找不到可能的解决方案。如果有人遇到同样的问题,请提供解决方案。 注意:我没有以编程方式添加任何行或列。这是一个使用c#.net vs2010的wind
谢谢如果您在winforms designer中遇到问题,请尝试删除并新添加现有控件。请确保不要更改设计器代码文件中的任何代码,除非您确实知道自己在做什么。当窗体被拆分为两个文件时,visual studio中发生了更改:
form.cs
和form.designer.cs
。我自己仍然有很多单文件表单,但它们可以正常工作
我猜你对表格做了些什么。例如,使用参数创建新构造函数。或者手动编辑InitializeComponent
method(千万不要这样做!)。在使用designer时,如果可以的话,尝试将其反转一段时间
更简洁的方法是,通过检查InitializeComponent
方法代码,简单地写下您必须对DataGridView
执行的所有操作,然后简单地添加新的DataGridView
并在designer中再次执行所有操作
更好的解决方案是从头开始重新设计表单。重构几年前的代码是一个好主意,特别是如果你有这样的问题。从我读到的论坛上,这似乎是Visual Studio中存在的一个bug。我建议您在“Form.Designer.cs”中手动编写代码。您必须正确输入相应的代码,然后您的列将自动显示在DataGridView中,而不会出现使用图形用户界面时出现的“列不是有效标识符”问题 Form.Designer.cs
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.YourColumnName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.YourColumnName
});
//
// YourColumnName
//
this.YourColumnName.HeaderText = "Your Column Name";
this.YourColumnName.Name = "YourColumnName";
this.YourColumnName.ReadOnly = true;
//
}
#endregion
private System.Windows.Forms.DataGridViewTextBoxColumn YourColumnName;
#区域组件设计器生成的代码
///
///设计器支持所需的方法-不修改
///此方法的内容与代码编辑器一起使用。
///
私有void InitializeComponent()
{
this.YourColumnName=new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridView.Columns.AddRange(新的System.Windows.Forms.DataGridViewColumn[]{
这是你的名字
});
//
//你的名字
//
this.YourColumnName.HeaderText=“Your Column Name”;
this.YourColumnName.Name=“YourColumnName”;
this.YourColumnName.ReadOnly=true;
//
}
#端区
private System.Windows.Forms.DataGridViewTextBoxColumn YourColumnName;
请提供几行代码,说明如何添加新列。我没有编写任何代码。我只是通过单击datagridview控件选项addcolumn/editcolumn选项来添加它。重建您的解决方案,有时它解决了设计器代码的问题。我也尝试了。显示错误“column name”不是有效的标识符。是否尝试完全删除datagridview?是的。我尝试完全删除datagridview,同时删除所有列并添加新列。两者都给出了相同的错误“column name”不是有效标识符。您可以尝试删除DataGridView
,然后在设计器代码文件中查找属于该视图的任何剩余内容。请确保在编辑设计器代码之前先备份代码。此错误的可能原因是什么。“列名不是有效的标识符”