Foxtable(狐表)用户栏目专家坐堂 → [求助]记存三个表的高度怎么就能记住一个?


  共有1645人关注过本帖树形打印复制链接

主题:[求助]记存三个表的高度怎么就能记住一个?

帅哥哟,离线,有人找我吗?
新福星
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1959 积分:15508 威望:0 精华:0 注册:2011/7/16 20:59:00
[求助]记存三个表的高度怎么就能记住一个?  发帖心情 Post By:2017/8/1 20:20:00 [只看该作者]

If r IsNot Nothing Then
    If Tables(bm4).Rows.Count<>0 Then
   
        r("a1")= Tables(bm4).Grid.Rows(Tables(bm4).Position+1).Height
        If   r("a1")<21 Then   r("a1")= 21
        
    End If
    If Tables(bm1).Rows.Count<>0 Then
   
        r("a2")= Tables(bm1).Grid.Rows(Tables(bm1).Position+1).Height
        If   r("a2")<21 Then   r("a2")= 21
    End If
    If Tables(bm5).Rows.Count<>0 Then
        r("a3")= Tables(bm5).Grid.Rows(Tables(bm5).Position+1).Height
        If   r("a3")<21 Then   r("a3")= 21
    End If
    r.save
End If

需要把一个窗口中三个表的高度记存下来。程序如上!
可是通过用MessageBox.Show显示数据,发现这三个表的高度不管怎么变化,只有一行会显示出实际高度,另两个是-1。只能记存其中一个。问题出在哪里?谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/8/1 20:31:00 [只看该作者]

如果没有显式使用代码给行设置过高度,那么默认都是-1的。

你可以判断一下,如果是-1,那么就是默认的高度21

 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1959 积分:15508 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2017/8/1 20:36:00 [只看该作者]

现在就是-1就设置成21。

我把这三个表的高度用Tables(bm).AutoSizeRows调整了行高。明显已经见到两个表的高度变宽了。
但是用MessageBox.Show(Tables(bmi).Grid.Rows(Tables(bmi).Position+1).Height)显示高度时,其高度只会有一个表显示是实际高度,另两个就显示为-1。好奇怪,为何?谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/8/1 21:16:00 [只看该作者]

如果数据仍然还只是一行的高度,AutoSizeRows不会导致高度变化

 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1959 积分:15508 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2017/8/1 21:27:00 [只看该作者]

我也注意到这个问题。三个表用AutoSizeRows调整高度,有两个表的高度明显发生了变化。另一个没有变化!
在这种情况下,三个表的Tables(bmi).Grid.Rows(Tables(bmi).Position+1).Height 高度,只有一个显示实际高度。另两个是-1。
ABC三个表AC高度变化,B没有变。三个表中显示实际高度的表可能是A也可能是C。飘忽不定的!有什么办法获取实际高度?谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/8/1 21:39:00 [只看该作者]

每一行的高度都可能不一样的。只有高度有变化的行才能取到正确的Height值,没有变化的行统一就是-1。

不明白你到底想实现什么功能,上实例看看

 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1959 积分:15508 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2017/8/2 4:48:00 [只看该作者]

要求是 :1 把表的行高记录下来.在下次打开时恢复关闭时的行高! 2 在输入数据时随着数据的录入行高自动适应,就象执行了AutoSizeRows。


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar

在这个项目中表A AfterResizeRow 的事件中设置代码   MessageBox.Show(e.Position & "/" &  e.Table.Grid.Rows(e.Position).Height)
然后拉动表A的行高,看到取到的行高怎么就是两个数呢?21 or -1。我想看到实际行高!谢谢

[此贴子已经被作者于2017/8/2 4:57:01编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/2 9:58:00 [只看该作者]

获取值,这样获取

 

MessageBox.Show(e.Position & "/" &  e.Table.Grid.Rows(e.Position+e.Table.HeaderRows).heightdisplay)

 

1、你可以用一列记录行高,打开的时候根据值设置。

 

    你可以直接用主表,你对主表的各种修改,都是可以保存下来的。

 

2、http://www.foxtable.com/webhelp/scr/1564.htm

 


 回到顶部