以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 副本Table之行位置联动后增加行的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=192707) |
||||
-- 作者:YANGYUNLIN -- 发布时间:2024/7/15 13:16:00 -- 副本Table之行位置联动后增加行的问题 假定窗口中插入了一个Table控件,绑定到"表A",作为副本。 希望在这个副本Table中选定一行时,表A也能自动选定这一行,实现这个任务很简单,只需将副本Table的CurrentChanged事件代码设置为: Dim dr As DataRow = e.Table.Current.DataRow Dim wz As Integer = Tables("表A").FindRow(dr) If wz >=0 Then Tables("表A").Position = wz End If 反过来,如果你想在表A选定某行时,副本Table也能同步选定同一样,可以讲表A的CurrentChanged事件代码设置为: If Forms("窗口1").Opened Then \'如果窗口已经打开 Dim dr As DataRow = e.Table.Current.DataRow Dim wz As Integer = Tables("窗口1_Table1").FindRow(dr) If wz >=0 Then Tables("窗口1_Table1").Position = wz End If End If 已按上述代码,每次增加行时,光标就会一行一行地往上走,如何改善?
|
||||
-- 作者:有点蓝 -- 发布时间:2024/7/15 13:43:00 -- 因为2个表事件会不停的互相触发,加上:http://www.foxtable.com/webhelp/topics/2218.htm Dim dr As DataRow = e.Table.Current.DataRow Dim wz As Integer = Tables("表A").FindRow(dr) If wz >=0 Then SystemReady = False Tables("表A").Position = wz SystemReady = TrueEnd If 反过来,如果你想在表A选定某行时,副本Table也能同步选定同一样,可以讲表A的CurrentChanged事件代码设置为: If Forms("窗口1").Opened Then \'如果窗口已经打开 Dim dr As DataRow = e.Table.Current.DataRow Dim wz As Integer = Tables("窗口1_Table1").FindRow(dr) If wz >=0 Then SystemReady = False Tables("窗口1_Table1").Position = wz SystemReady = True End If End If [此贴子已经被作者于2024/7/15 13:43:36编辑过]
|
||||
-- 作者:YANGYUNLIN -- 发布时间:2024/7/15 17:40:00 -- 老师的代码有效,谢谢 |
||||
-- 作者:YANGYUNLIN -- 发布时间:2024/7/15 18:40:00 -- 老师,出现了新的情况,combobox1绑定了“第一列”,加了暂停后,点击“表A”记录时combobox1正常,点“表A_table1”时combobox1就不正常 |
||||
-- 作者:YANGYUNLIN -- 发布时间:2024/7/15 18:42:00 -- 老师,出现了新的情况,combobox1绑定了“第一列”,加了暂停后,点击“表A”记录时combobox1正常,点“表A_table1”时combobox1就不正常
|
||||
-- 作者:YANGYUNLIN -- 发布时间:2024/7/15 19:11:00 -- 增加了一个新增行判断,问题暂时解决,就是不知道这样是否可以或有其他方法,如下: Dim dr As DataRow = e.Table.Current.DataRow Dim wz As Integer = Tables("表A").FindRow(dr) If wz >= 0 Then If Tables("窗口1_Table1").Current.DataRow.RowState = DataRowState.Added Then SystemReady = False Tables("表A").Position = wz SystemReady = True Else Tables("表A").Position = wz End If End If |
||||
-- 作者:有点蓝 -- 发布时间:2024/7/15 20:09:00 -- 因为控件的事件被屏蔽了,把combobox1的valuechanged事件的代码复制一份放到副本的CurrentChanged事件即可 |