2013-04-12 34 views
0

我有这行代码把“真”上selectedrows的所有第一列:在datagridview中设置SELECTEDROWS列的值的最快方法是什么?

For Each row As DataGridViewRow In DataGridView1.SelectedRows 
    row.Cells(0).Value = True 
Next 

但它需要花费大量的时间把一个单个值此列,如果行数较多比一百。 row.Cells(0)是一个布尔列,我只需要它被设置为选中/取消选中。

我试着检查是否有一个将设置列的值的语法,但是我找不到有用的语法和从搜索引擎中可用的语法。希望你能帮助我这个。在此先感谢

回答

1

如果DataGridView是数据绑定,则不应该直接修改单元格的内容。相反,你应该修改数据绑定对象。您可以通过DataGridViewRowDataBoundItem访问该对象,例如, C#:

MyObject obj = (MyObject)dataGridView.CurrentRow.DataBoundItem; 
obj.MyProperty = newValue; 

注意,绑定对象应该实现INotifyPropertyChanged,使这一变化反映在DataGridView 找到here

vb.net:

Dim obj As MyObject = DirectCast(dataGridView.CurrentRow.DataBoundItem, MyObject) 
obj.MyProperty = newValue 
+0

IM要求在vb.net。 ..>。<..为什么你必须复制所有原始答案的内容? –

+0

公平点我已经包括vb.net给你。在我的手机上:S – STiTCHiCKED

+0

没关系..谢谢..但是我指的是SELECTED ROWS ..而不是CURRENTROW ..我应该再次使用同一个循环,但只修改bindingsource/databound对象的值吗? –

相关问题