ColDataChanged数据变更之后发生的事件。与之相对的ColDataChanging事件,可以设置e.Cancel=true来取消当前修改。
ColDataChanged | 是 | 数据 | 数据变更之后发生的事件。 |
ColDataChanging | 是 | 数据 | 数据变更之前发生的事件。 |
下面是e参数可以获得的对象清单
Vb.Net |
Public Sub SmGrid1_ColDataChanged(sender As Object,e As sanMuSoft.CS.WinForm.ColDataEventArgs) Dim tbl As SmGrid=sender 'ColData变更事件,包含了下面这些对象 Dim dt As DataTableHelp=e.DataTableHelp Dim col As ColData=e.ColData Dim dr As RowData=e.RowData Dim objOld As Object=e.OldValue Dim objNew As Object=e.NewValue Dim frm As BaseForm=e.Form End Sub |
C# |
public void SmGrid1_ColDataChanged(object sender, sanMuSoft.CS.WinForm.ColDataEventArgs e) { SmGrid tbl = sender as SmGrid; // ColData变更事件,包含了下面这些对象 DataTableHelp dt = e.DataTableHelp; ColData col = e.ColData; RowData dr = e.RowData; object objOld = e.OldValue; object objNew = e.NewValue; BaseForm frm = e.Form; } |
示例1:数量或单价有变量时自动重新计算金额列
Vb.Net |
Public Sub ColDataChanged(sender As Object,e As sanMuSoft.CS.WinForm.ColDataEventArgs) Dim strColName As String=e.ColData.Name Select Case strColName Case "数量","单价" '数量或单价有变量时自动重新计算 e.RowData("金额")=e.RowData("数量")*e.RowData("单价") Case Else End Select End Sub |
C# |
public void ColDataChanged(object sender, sanMuSoft.CS.WinForm.ColDataEventArgs e) { string strColName = e.ColData.Name; switch (strColName) { case "数量": case "单价": { // 数量或单价有变量时自动重新计算 e.RowData["金额"] = e.RowData["数量"].CType<int>() * e.RowData["单价"].CType<decimal>(); break; } default: { break; } } } |
示例2:如果修改的是“客户”列,则取消变更。
Vb.Net |
|
C# |
|