此事件在控件進入編輯模式之前激發(fā)。它允許您通過將Cancel參數(shù)設(shè)置為true來防止編輯,或者重新設(shè)置BaseGrid.ComboList屬性或重新設(shè)置BaseGrid.EditMask屬性。
如果整列的選項或掩碼相同,則可以使用BaseGrid.Cols("列名稱").ComboList和BaseGrid.Cols("列名稱").EditMask更有效地設(shè)置它們。在這種情況下,根本不需要處理StartEdit事件。
VB.Net |
|
C# |
// 定義一個臨時變量,存儲上一個設(shè)置了錯誤信息的行 private RowData m_LastErrorRowData = null; public void StartEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) { // 獲得當前表 SmGrid tbl = sender; // 如果當前是綁定行 if (tbl.Rows(e.Row).DataIndex >= 0) { if (tbl.Rows(e.Row)["Gender"].CType<string>("") == "男") { // 如果之前有設(shè)置過錯誤信息,則在這里清空一下 if (m_LastErrorRowData != null) m_LastErrorRowData.ClearErrors(); // 設(shè)置新的錯誤信息提示 tbl.Rows(e.Row).GetRowData().SetError(tbl.Cols(e.Col).Name, "男生不讓編輯喲!"); // 將新的錯誤行賦值給臨時變量 m_LastErrorRowData = tbl.Rows(e.Row).GetRowData(); // 禁止繼續(xù)編輯數(shù)據(jù) e.Cancel = true; } } } |