如何取消共享Datagridviewrow

时间:2013-11-23 04:03:06

标签: c# .net datagridview

所以我在我的项目中遇到了Datagridview的问题,所以我想我会把它归结为最基本的,并且可以从那里开始工作。似乎我只是不明白它是怎么回事,因为

DataGridViewRow row = new DataGridViewRow();
ThreadGrid.Rows.Add(row);
ThreadGrid.Rows.Add(new DataGridViewRow());
ThreadGrid.Rows.Remove(row);

导致错误“提供的行必须先取消共享”。

我找不到任何相关的“取消共享”方法或“共享”属性。我在这里错过了一些东西,还是我在问这个不可能的事情?

1 个答案:

答案 0 :(得分:0)

关于MSDN上的行共享有一些解释:DataGridViewRow(备注部分)

  

DataGridView控件将共享DataGridViewRow对象   尽可能多的数据行,以避免性能损失。   除非您正在处理大量数据和体验   性能问题,通常可以忽略行共享。共享行   由Index属性值-1表示。一些成员   DataGridViewRow类不能与共享行一起使用,但可以   通过访问它来取消共享   DataGridViewRowCollection.Item 属性。行也可以不共享   在其他方面。要在不取消共享的情况下访问行,请使用   DataGridViewRowCollection.SharedRow方法。与大型合作时   大量数据,您应该知道如何共享行和   不共享以避免性能损失。有关更多信息,请参阅   扩展Windows窗体DataGridView控件的最佳实践。

因此,按索引访问行将取消共享:

ThreadGrid.Rows.Remove(ThreadGrid.Rows[0]);