2009-10-11 104 views
3

我有一個虛擬模式的DataGridView。 我只實現了http://msdn.microsoft.com/en-us/library/15a31akc.aspx中描述的CellValueNeeded事件處理程序。如何在虛擬模式下以編程方式編輯datagridview的單元格值?

只有當您希望能夠手動編輯單元格時,才能實現其餘事件。

我想以編程方式編輯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(); 

,但沒有成功:(

當您使用虛擬模式的任何幫助,將不勝感激

回答

7

,你提供自己的邏輯鏈接DataGridView指向底層數據源,因此,要編輯單元格值,您應該更改基礎數據源中的值,並調用Refresh刷新顯示的值(這會導致CellValueNeeded事件t o被稱爲所有顯示的單元格)

+0

謝謝。 你是否有機會知道是否有辦法知道當前在虛擬模式下顯示哪些行。這將使我有機會確定刷新是否必要。 –

+1

您可以使用FirstDisplayedScrollingColumnIndex和FirstDisplayedScrollingRowIndex屬性,以及DisplayedColumnCount和DisplayedRowCount方法。 –

+0

超級!這個控件有很多屬性,有時很難找到你要找的東西。多謝! –

相關問題