以文本方式查看主题

-  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=66752)

--  作者:九易六
--  发布时间:2015/4/13 11:13:00
--  [求助]在PrepareEdit事件当中设置目录树导致菜单失去响应

在“表B”“第一列”的PrepareEdit事件当中使用DropTreeBuilder设置目录树,发生异常如下:选中“第一列”时,菜单按钮失去响应,手工选中其他列,菜单按钮恢复响应。

 

以下内容为程序代码:

1 If e.IsFocusCell Then
2 Select Case e.Col.Name
3 Case "第一列" \'设置下拉列表
4 Dim tb As New DropTreeBuilder
5 tb.SourceTable = DataTables("表A") \'指定目录树表
6 tb.TreeCols = "第一列" \'指定用于生成目录树的列
7 tb.SourceCols = "第一列" \'指定数据来源列
8 tb.ReceiveCols = "第二列" \'指定数据接收列
9 e.Col.DropTree = tb.Build()
10 End Select
11 End If

 

http://pan.baidu.com/s/1nth131B

 

请问:应当如何修改代码,使选中“第一列”时,菜单按钮不会失去响应?

[此贴子已经被作者于2015/4/13 11:13:53编辑过]

--  作者:Bin
--  发布时间:2015/4/13 11:17:00
--  
不要这样

把代码放到MaintableChanged事件. 不要每次点击单元格都生成一次目录树.

--  作者:九易六
--  发布时间:2015/4/13 15:46:00
--  

我需要根据current行另一列的内容进行筛选。在帮助文件当中提到过可以在PrepareEdit事件当中设置目录树代码。

 

我的需求是:

①需要用到动态列表的功能:根据当前行条件列的内容,生成筛选过的下拉列表。

②需要用到目录树的“数据接收列、数据来源列”功能,选择下拉列表当中的一行,可以将多列同时填写上数据(例如选择县市之后可以自动填写邮编、区号)


--  作者:Bin
--  发布时间:2015/4/13 15:49:00
--  
用的是别的表,写到MaintableChanged即可..

搞不定就上例子.

--  作者:Bin
--  发布时间:2015/4/13 15:49:00
--  
http://www.foxtable.com/help/topics/2127.htm
--  作者:九易六
--  发布时间:2015/4/13 16:15:00
--  

帮助文件最后一句话就是:“需要根据其它列已经输入的内容来生成列表项目或目录树,那么就只能将代码放在表事件PrepareEdit中了。”

我就是根据这句话来做的。

现在的问题是:这样做了之后,菜单按钮就会失去响应。例子已经上传了,就在一楼。


--  作者:Bin
--  发布时间:2015/4/13 16:18:00
--  
你情况,和描述的情况无关. 搞不定就上例子.
--  作者:九易六
--  发布时间:2015/4/13 16:52:00
--  
例子已经上传在一楼啊,你把焦点放在“表B”的“第一列”,菜单按钮就会失去响应。
--  作者:Bin
--  发布时间:2015/4/13 16:53:00
--  
说了不要这样做,看5楼
--  作者:九易六
--  发布时间:2015/4/13 16:55:00
--  
5楼帮助文件的最后一句已经说了“需要根据其它列已经输入的内容来生成列表项目或目录树,那么就只能将代码放在表事件PrepareEdit中了”,我就是根据帮助文件中的这句话做的。