根據設計要求,用戶無法直接編輯datagridview。它處於只讀模式。當用戶雙擊單元格時,datagridview的只讀屬性將變爲false,並且該單元格接受鍵盤輸入。但是,原始鍵盤輸入需要在進入單元格之前進行格式化。因此,我攔截KeyPress事件如下:動態修改時Datagridview單元格值未更新
private void dgw_keyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
此時單元處於編輯模式和髒模式。然後我用另一種方法更新Value屬性,並調用dgw.Refresh()
,它應該在單元上顯示更新的值。但它不會。它只會在當前單元格不髒並且不處於編輯模式時更新。當它仍處於編輯模式時,如何強制單元格顯示更新值?
任何想法?
InvalidateCell()? – Dmitry 2011-05-11 04:44:57
您想要實現的功能不是很清楚,您如何捕獲「keypress」事件,然後修改輸入並將其分配給網格。請發佈所有相關的代碼,這不會給出導致問題的whatz的任何見解。 – V4Vendetta 2011-05-11 05:13:45
我試圖在沒有運氣的情況下對datagridview控件執行InvalidateCell()UpdateCellValue()和Refresh()。 我攔截並忽略了控件的關鍵事件。相反,我有一個記錄擊鍵的鍵盤鉤子。我採取由鍵盤鉤子捕獲的關鍵事件,修改值並將它們顯示在DGW單元上。 – Thracian 2011-05-11 19:19:49