C# 如何在虚拟模式下以编程方式编辑datagridview的单元格值?

C# 如何在虚拟模式下以编程方式编辑datagridview的单元格值?,c#,winforms,datagridview,virtual,editing,C#,Winforms,Datagridview,Virtual,Editing,我有一个虚拟模式下的DataGridView。 我只实现了CellValueRequired eventhandler,如中所述 只有当您希望能够手动编辑单元格时,才需要实现其余事件 我想通过编程编辑DataGridView单元格值 我使用以下代码尝试了此操作: DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically; DataGridView1.BeginEdit(false); DataGridView1.Rows

我有一个虚拟模式下的DataGridView。 我只实现了CellValueRequired eventhandler,如中所述

只有当您希望能够手动编辑单元格时,才需要实现其余事件

我想通过编程编辑DataGridView单元格值

我使用以下代码尝试了此操作:

DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
DataGridView1.BeginEdit(false);
DataGridView1.Rows[0].Cells[0].Value = "testing new value";
//just using a random parameter here, not sure it is needed when editing programmatically
DataGridView1.CommitEdit(DataGridViewDataErrorContexts.LeaveControl);
DataGridView1.Refresh();
但没有成功:(


如果您使用虚拟模式,您将提供自己的逻辑,将
DataGridView
链接到基础数据源。因此,要编辑单元格值,您应该更改基础数据源中的值,并调用
刷新
,以刷新显示的值(这将导致为所有显示的单元格调用
CellValueRequired
事件)

谢谢。您是否还知道是否有办法知道当前在虚拟模式下显示了哪些行。这将使我有机会确定是否需要刷新。您可以使用FirstDisplayedScrollingColumnIndex和FirstDisplayedScrollingRowIndex属性,以及DisplayedColumnCount和DisplayedRowCount方法.super!此控件有太多属性,有时很难找到您要查找的内容。Thx很多!我也有同样的问题,我有绑定到SQL datatable的绑定datagridview,但是当用户尝试编辑并向datagridview添加新行时,它工作正常,可以接受编辑,没有问题,但问题会在我需要时出现以编程方式编辑单元格值,那么如何实现呢?我还调试了代码,看到单元格值发生了更改,但它没有显示在gridview上?