2010-05-06 40 views
0

我想要做的是根据一些条件设置一行的背景,但datagrid会相当大,所以我不想循环遍历所有行再次。该行获得创建我做这样的事情“myDataGridView.DataSource = MyDataSource,所以唯一的办法我能想到的编辑行是通过一个事件。我需要一行为DataGridView添加事件

有一排小号添加的事件,但是这给了我一个我不得不排列表迭代。

预先感谢任何帮助。

回答

1

那么,是你的问题?

你必须把你的手指上的每一行最少有一次,如果你在RowAdded事件中获得一行或一堆t,那么它有什么区别?下摆?在一堆的情况下,你也只有一次获得每一行,但只有较少的事件,这也可能导致更快的代码(但要确保我会对此进行分析!)。

0

尽管这可能不会直接回答您的问题,但您是否考虑在数据源仍然为空时分配数据源,然后使用数据填充数据源。在这种情况下,如果您正在使用绑定列表,则可以使用绑定列表提供的事件来确定是否添加了新项目

0

现在我正在使用RowStateChanged事件。它需要更频繁的启动,但那不是一个真正的问题。我发现这件事真的很奇怪。它看起来像是设置第一行的背景颜色,它改变了所有的行。我无法弄清楚它为什么这样做,但我只是添加了一个else语句来强制其他所有东西都是白色的。

它对我来说足够了。谢谢你们的帮助。

0

这已经有一段时间了,但我想我在一些需要的情况下使用了DataGridView.RowPostPaint事件。

,从传递到事件处理程序的事件参数,您可以访问的rowIndex,让你去Row对象,从中你可以参考DataBoundItem等

请查一查,看看是否它可以满足你的需要。

HTH