以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]表PrepareEdit事件代码出现字符显示消失程序卡顿 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=132950) |
||||
-- 作者:chh2321 -- 发布时间:2019/4/2 21:02:00 -- [求助]表PrepareEdit事件代码出现字符显示消失程序卡顿 老师,我在表的PrepareEdit事件中写下如下代码, If e.IsFocusCell Then \'如果是焦点所在单元格
Dim aa() As String ={"T","N","M"}
For Each a As String In aa
If e.Col.Name = a Then \'如果正在编辑的是a列
Dim dmp As New TableDataMap
dmp.DataTable = "TNMStage" \'指定数据来源表
dmp.ValueCol = "TNM" \'指定取值列
dmp.DisplayCol = "TNM" \'指定显示列
dmp.ListCols = "肿瘤类型,TNM,分期标准,Version"
dmp.Filter = "[肿瘤类型] = \'" & e.Row("肿瘤类型") & "\' and [TNM] Like \'" & a & "%" & "\'"
Tables("tblCStage").Cols(a).DataMap = dmp.CreateDataMap() \'生成并设置DataMap
End If
Next
End If
程序可以运行,如图1:
但鼠标点击下方单元格时,上方已编辑单元格的字符就不显示了,如图2:
当鼠标再次点击已编辑单元格,消失的字符又显示了,如图3:
而且程序好像很慢,有明显卡顿现象。请问老师,这是什么原因,如何处理呢? |
||||
-- 作者:chh2321 -- 发布时间:2019/4/2 21:22:00 -- 附项目文件
|
||||
-- 作者:有点蓝 -- 发布时间:2019/4/2 21:25:00 -- 不要在PrepareEdit设置动态字典,这是一个无法解决的bug 代码放到AfterSelChange事件 Dim cl As Col = e.Table.Cols(e.NewRange.ColSel) dim r as row = e.Table.Rows(e.NewRange.RowSel) Dim aa() As String ={"T","N","M"} For Each a As String In aa If cl.Name = a Then \'如果正在编辑的是a列 Dim dmp As New TableDataMap dmp.DataTable = "TNMStage" \'指定数据来源表 dmp.ValueCol = "TNM" \'指定取值列 dmp.DisplayCol = "TNM" \'指定显示列 dmp.ListCols = "肿瘤类型,TNM,分期标准,Version" dmp.Filter = "[肿瘤类型] = \'" & r("肿瘤类型") & "\' and [TNM] Like \'" & a & "%" & "\'" e.Table.Cols(a).DataMap = dmp.CreateDataMap() \'生成并设置DataMap End If Next |
||||
-- 作者:chh2321 -- 发布时间:2019/4/2 21:37:00 --
把代码放到AfterSelChange事件后,仍出现字符消失的问题 此主题相关图片如下:2019-04-02_21-30-33.jpg |
||||
-- 作者:有点蓝 -- 发布时间:2019/4/2 21:48:00 -- 显示不全是因为数据没有加载。如果使用字典必须加载全部数据。如果做动态加载的,建议使用自定义下拉窗口:http://www.foxtable.com/webhelp/scr/2465.htm |