2010-07-13 97 views
0

我幾乎沒有使用WinForm的DataGridView控件,並且老實說我很難嘗試混合和匹配它的事件和方法(例如,CommitEdit()方法沒有達到我所期望的)來實現簡單的概念通過「進入編輯模式,雙擊單元格,修改它的值(希望做某種驗證),並留下上述小區時保存更改我的實際代碼看起來是這樣的,它絕​​對是不完整的。如何「雙擊,編輯並保存」 - Windows窗體DataGridView CurrentCell?

// DEBUG 

private void myDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
{ 
    this.myDataGridView.BeginEdit(true); 
    this.myDataGridView.CurrentCell.ReadOnly = false; 
} 

private void myDataGridView_CellLeave(object sender, DataGridViewCellEventArgs e) 
{ 
    this.myDataGridView.EndEdit(); 
} 

private void myDataGridView_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) 
{ 
    DataGridViewCellStyle editCellStyle = new DataGridViewCellStyle(); 
    editCellStyle.BackColor = System.Drawing.Color.DarkOrange; 
    editCellStyle.ForeColor = System.Drawing.Color.Black; 
    this.myDataGridView.CurrentCell.Style.ApplyStyle(editCellStyle); 
} 

private void myDataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) 
{ 
    DataGridViewCellStyle defaultCellStyle = new DataGridViewCellStyle(); 
    defaultCellStyle.BackColor = System.Drawing.Color.White; 
    this.myDataGridView.CurrentCell.Style.ApplyStyle(defaultCellStyle); 
} 

// DEBUG 

所以因爲你可能會注意到任何你可以提供的幫助將是非常有價值的和definintely讚賞。非常感謝你們提前!

+0

究竟是什麼問題?例如數據源是否未更新?數據庫? CellStyles沒有更新? – 2010-07-13 15:33:49

+0

感謝您的回覆Conrad Frix。實際上沒有任何更新,儘管myDataGridView.CurrentCell.EditedFormattedValue擁有新的價值,當它離開單元格時它已經丟失。 – 2010-07-13 15:41:16

回答

0

哇,結果我處理的「實體」(LINQ-to-SQL)沒有PK,因此LINQ無法更新它,所以它不是DGV的錯。對於那個很抱歉。

+0

我已經能夠在實體模型中「僞造」PK,它可以工作,儘管我不一定熱愛它的工作「解決方法」。 – 2010-07-21 13:58:37