以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- CurrentChanged事件问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=133240) |
||||
-- 作者:ZJZK2018 -- 发布时间:2019/4/10 13:49:00 -- CurrentChanged事件问题 我在全局表事件中写下面代码,解决了窗口副表与主表行位置联动,现在的需求是能否写一个通用代码来解决主表与窗口副表行位置联动问题?如何写代码,写在哪里??谢谢 If e.Table.Current Is Nothing Then \'如果Current为Nothing Return Else Dim dr As DataRow = e.Table.Current.DataRow Dim tb As Table = Tables(e.Table.DataTable.Name) Dim wz As Integer = tb.FindRow(dr) If wz >= 0 Then Systemready = False tb.Position = wz Systemready = True tb.Refresh \'\'表的行标不显示问题 End If End If |
||||
-- 作者:有点甜 -- 发布时间:2019/4/10 15:17:00 -- 参考
http://www.foxtable.com/webhelp/scr/2631.htm
|
||||
-- 作者:ZJZK2018 -- 发布时间:2019/4/16 1:03:00 -- 下面是一个通用代码来解决主表与窗口副表行位置联动,请老师审核一下是否有问题,我测试还可以? \'\'表A选定某行时,副本Table也能同步选定同一样 For Each frm As WinForm.Form In Forms ‘遍历所有窗口 If frm.Opened() Then ‘判断窗口已打开 For Each ct As Object In frm.Controls If Typeof ct Is WinForm.Table Then If ct.Visible = True AndAlso ct.Table.DataTable.Name.Contains(e.Table.DataTable.Name) Then
If e.Table.Current Is Nothing Then Return
Dim dr1
As DataRow =
e.Table.Current.DataRow
Dim wz1
As Integer =
ct.Table.FindRow(dr1)
If wz1
>= 0 Then
Systemready = False
ct.Table.Position = wz1
Systemready = True e.Table.Refresh \'表的行标不显示问题
End If End If End If Next End If Next
|
||||
-- 作者:有点甜 -- 发布时间:2019/4/16 9:14:00 --
If e.Table.Current Is Nothing Then Return
改成
If e.Table.Current Is Nothing Then continue for
|