C#DataGridView行未显示-Windows窗体已损坏

C#DataGridView行未显示-Windows窗体已损坏,c#,C#,当前我的表单有一个Datagirdview(DGV),显示时DGV内没有任何值 在代码不起作用后,必须手动插入列标题,然而,在我的一个老项目中,精确的代码起作用 代码(DGV称为DGV问题): 我不确定表单是否有点破损,因为我从未见过DGV如此难以插入数据 要插入数据,我使用的代码是: dgvQuestions.Rows.Add(1, "2x2", "Count with your fingers", "4", "9", 1); 是否有人知道如何检查DGV是否已锁定且不接受修改?或者问题是什

当前我的表单有一个Datagirdview(DGV),显示时DGV内没有任何值

在代码不起作用后,必须手动插入列标题,然而,在我的一个老项目中,精确的代码起作用

代码(DGV称为DGV问题):

我不确定表单是否有点破损,因为我从未见过DGV如此难以插入数据

要插入数据,我使用的代码是:

 dgvQuestions.Rows.Add(1, "2x2", "Count with your fingers", "4", "9", 1);
是否有人知道如何检查DGV是否已锁定且不接受修改?或者问题是什么

--------------------------------更新---------------------------------------


定义为答案的代码在我的表单中不起作用,尽管文本框中有字符,但文本框值始终值为“”。如何修复不接受输入的表单?

您应该将行添加到
数据表
中,然后将其作为
数据源
分配给
数据网格视图

DataTable Test = new DataTable();

Test.Columns.Add("Text", typeof(string));
Test.Columns.Add("Advice", typeof(string));
Test.Columns.Add("Choice One", typeof(string));
Test.Columns.Add("Choice Two", typeof(string));
Test.Columns.Add("Choice Id (Determines Answer)", typeof(int));

Test.Rows.Add(1, "2x2", "Count with your fingers", "4", "9", 1);;

dgvQuestions.DataSource = Test;

正如心怀不满的。。在您的问题的评论中,您可能希望了解使用
BindingSource

的本质,而不是使用数据表,您可以使用像bindingslist和life is all kittens and rainbowso这样的集合。。。您正在创建一个DataTable并向其中添加一些列(但没有数据)。然后,您有一个DGV,并且您正在将其数据源设置为空数据表,但向DGV添加一行(即使它有一个数据源)。您需要选择a)使用数据绑定或b)手动添加内容。此外:为什么要使用数据表,为什么不使用强类型对象的集合,例如?我还没有将数据添加到网格中,因为列标题不起作用。数据将从数据库中提取并放置在DGV中。“Answer”中的代码在表单中的DGV上不起作用。如果您有数据库,将数据放入datatable不是您的工作。使用DBCommand对象或DataAdapter填充表。您正在以最困难的方式完成所有工作。我已将数据库中的数据插入列表(以其他形式使用),以使其更加健壮,并在连接中断时工作。数据已经被插入到数据库中,我甚至不明白这是怎么产生的,尽管如此,我之前使用的数据网格视图大约有12行代码,要插入数据,在标题匹配后,我只需要插入一个for循环来迭代列表。如果不手动插入标题,我就无法使标题正常工作,我怀疑表单中的DGV已被“可编辑”锁定,或者可能是我错了。在将行分配给DGV而不是数据表之前,我尝试了此方法。我将查看绑定列表,thanks@NodeCode,您是否在问题的注释中说过,当您从数据库检索表时,它们具有不同的列名?这可能是绑定问题。目前,由于标题不起作用,数据库未被使用。整个表单的行为出人意料,我将在另一个相同的表单上测试相同的代码并检查结果。表单似乎被锁定。代码在另一个表单上工作…表单可以被破坏吗?我不明白什么时候整个表单都是相同的,是新表单还是以前写过代码的表单?你能尝试一些非常简单的方法,看看效果如何吗。Like-dgvQuestions.DataSource=newlist(){“a”、“b”、“c”};暂时注释datatable代码。
DataTable Test = new DataTable();

Test.Columns.Add("Text", typeof(string));
Test.Columns.Add("Advice", typeof(string));
Test.Columns.Add("Choice One", typeof(string));
Test.Columns.Add("Choice Two", typeof(string));
Test.Columns.Add("Choice Id (Determines Answer)", typeof(int));

Test.Rows.Add(1, "2x2", "Count with your fingers", "4", "9", 1);;

dgvQuestions.DataSource = Test;