以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]拉伸列问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=44452)

--  作者:mosquito1003
--  发布时间:2013/12/31 15:41:00
--  [求助]拉伸列问题
双击2列的标题的交汇处,可以把该列自动调整到,该列中的内容最长的列宽处!请问,我现在有A表和B表,我希望双击A表中的2列的标题的交汇处,该列会按照B表中的同名列的内容最长的列宽处,该如何实现?请教高手们,想了一整夜了,还是没有头绪。
--  作者:Bin
--  发布时间:2013/12/31 15:53:00
--  
这个不太好办呢.
--  作者:狐狸爸爸
--  发布时间:2013/12/31 17:03:00
--  

打开项目后,表B先自动列宽:

http://www.foxtable.com/help/topics/1554.htm

 

设置表A的这个事件:

http://www.foxtable.com/help/topics/0652.htm

 

if Tables("表B").Cols.Contains(e.col.name) then
    e.Cancel = True

    e.col.width = Tables("表B").Cols(e.Col.name).Width

end if


--  作者:Bin
--  发布时间:2013/12/31 17:05:00
--  
BeforeResizeColumn 这个好东东怎么就被我忽略了呢图片点击可在新窗口打开查看
--  作者:狐狸爸爸
--  发布时间:2013/12/31 17:06:00
--  
图片点击可在新窗口打开查看
--  作者:mosquito1003
--  发布时间:2014/1/2 16:30:00
--  
狐狸爸爸的这个方法是一开后,表的初始化吧!能否在输入数据的过程中,我双击 A表中的2列的标题的交汇处,该列会按照B表中的同名列的内容最长的列宽处
--  作者:Bin
--  发布时间:2014/1/2 16:30:00
--  
你双击表A 表A变化会触发BeforeResizeColumn事件
--  作者:mosquito1003
--  发布时间:2014/1/2 16:40:00
--  
 关键是 BeforeResizeColumn事件的代码是
if Tables("表B").Cols.Contains(e.col.name) then

    e.Cancel = True

    e.col.width = Tables("表B").Cols(e.Col.name).Width

end if

此时的表B由于数据的加入已经不是原来刚刚打开表时的宽度的!这个就不对了,就无法达到是表B该列新的宽度了!


--  作者:Bin
--  发布时间:2014/1/2 16:43:00
--  

AfterResizeColumn 那就用这个事件


--  作者:mosquito1003
--  发布时间:2014/1/2 16:48:00
--  
看来bin大爷不懂我的那个意思!请bin大爷帮忙做个例子,万分的谢谢!