单击DataGridView行

时间:2017-02-11 00:13:44

标签: c# datagridview

这似乎是一个非常奇怪的问题,但也许我只是遗漏了一些明显的东西。

我把所有东西都剥去了骨头。获取Windows窗体并在其上放置DataGridView。在_Load事件中,输入以下代码:

   List<Mystery> myst = new List<Mystery>();
   //myst.Add(new Mystery() { Name = "First" });
   dataGridView1.DataSource = myst;
   dataGridView1.DataSource = null;
   myst.Clear();
   myst.Add(new Mystery() { Name = "First" });
   myst.Add(new Mystery() { Name = "Second" });
   myst.Add(new Mystery() { Name = "Third" });
   dataGridView1.DataSource = myst;

这个班似乎不相关,我用过:

class Mystery
{
    public string Name { get; set; }
}

当我加载表单时,如果我单击其中一行,我会收到此错误:“索引-1没有值”。

但是,如果我取消注释第二行代码,我就没有问题。

或者,如果我注释掉第三行代码,它就可以正常工作。

或者,如果不是清除列表,而是重新实例化。

如果第一次将特定列表绑定到网格时,似乎会导致错误,该列表中的对象为零。

通过检查列表是否具有&gt;来使代码工作变得非常容易。 0对象,如果没有,将网格绑定为null,但这似乎不优雅,我想知道错误发生的原因。在将列表绑定到网格之前,检查0计数是否只是一般规则?或者我的设置或系统中有什么奇怪的东西?

0 个答案:

没有答案