CurrentChanged表的当前行变更事件。表数据重新加载后也会重新定位到第一行数据,此时也会触发此事件。同时,表的筛选或排序操作也会触发此事件。另外,添加或删除当前行之前的行、删除或移动当前行本身,或将其他行移动到当前位置也会触发此事件。
另外还有一个PositionChanged事件跟此事件效果差不多。PositionChanged事件是指表的Position位置变更就会触发。
CurrentChanged | 是 | 数据 | 表的当前行变更事件。 |
PositionChanged | 是 | 数据 | 表的当前位置变更事件。此事件跟CurrentChanged事件效果类似。 |
示例:我们可以在主表当前行变动时,重新加载子表的信息。
Vb.Net |
Public Sub CurrentChanged(sender As Object,e As System.EventArgs) Dim tbl As SmGrid=sender '要先判断一下当前行是否为空 If tbl.CurrentRowData IsNot Nothing Then '获得当前窗体 Dim frm As SmForm=tbl.Form '获得子表的引用 Dim tblSub As SmGrid=frm.Grids("订单明细") '设置加载条件 tblSub.DataTableHelp.LoadFilter="订单号='" & tbl.CurrentRowData("订单号") & "'" '开始重新加载数据 tblSub.DataTableHelp.Load() End If End Sub |
C# |
public void CurrentChanged(object sender, System.EventArgs e) { SmGrid tbl = sender as SmGrid; // 要先判断一下当前行是否为空 if (tbl.CurrentRowData != null) { // 获得当前窗体 SmForm frm = tbl.Form; // 获得子表的引用 SmGrid tblSub = frm.Grids["订单明细"] as SmGrid; // 设置加载条件 tblSub.DataTableHelp.LoadFilter = "订单号='" + tbl.CurrentRowData["订单号"].ToString() + "'"; // 开始重新加载数据 tblSub.DataTableHelp.Load(); } } |