Foxtable(狐表)用户栏目专家坐堂 → 窗口表滚动条识别的问题【已解决】


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

主题:窗口表滚动条识别的问题【已解决】

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


加好友 发短信
等级:一尾狐 帖子:445 积分:5361 威望:0 精华:0 注册:2016/1/28 2:59:00
窗口表滚动条识别的问题【已解决】  发帖心情 Post By:2021/9/3 14:04:00 [只看该作者]

如下截图中,设置列宽时,横滚动条 刚刚好显示时(存在纵向滚动条) ,却识别不出,正确应该识别为 3(纵横),这个需要微调列宽才能测试出来


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20210903140518.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2021/9/4 3:28:20编辑过]

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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/3 14:06:00 [只看该作者]

这个没有办法,自己微调到合适的位置吧

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


加好友 发短信
等级:一尾狐 帖子:445 积分:5361 威望:0 精华:0 注册:2016/1/28 2:59:00
  发帖心情 Post By:2021/9/3 14:14:00 [只看该作者]

这个问题就是导致了 固定合计行的 控件 显示位置问题了

    Dim hg As Integer = sender.rows(sender.rows.count -1).Height  '控件高
    If hg = -1 Then
        hg = sender.rows(sender.rows.count -1).HeightDisplay
    End If
    Dim gh = sender.Height - 1
    Select Case sender.ScrollBarsVisible '显示了滚动条  0无 1横向 2纵向 3横纵
        Case 1,3
            gh = gh - 19
    End Select
    If sender.Controls.ContainsKey("Myhuizong") = False Then  '不存在汇总控件,则添加
        Dim huizong As new C1.Win.C1FlexGrid.C1FlexGrid
        With huizong
            .name = "Myhuizong"
            .BorderStyle = C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.None '无边框
            .Cols.Count = sender.Cols.Count
            .rows.count = 2
            .Rows(0).Height = 0    '隐藏标题行
            .Enabled = False    '不能使用控件
            .styles.emptyarea.backcolor = sender.styles.emptyarea.backcolor
            '.FocusRect = C1.Win.C1FlexGrid.FocusRectEnum.None '不显示焦点框
            .HighLight = C1.Win.C1FlexGrid.HighLightEnum.Never '不高亮显示选定区
        End With
        sender.Controls.add(huizong)   '加入控件
    End If
    Dim k As Integer = 2
    Dim hui As C1.Win.C1FlexGrid.C1FlexGrid = sender.Controls("Myhuizong")
    Select Case sender.ScrollBarsVisible '显示了滚动条  0无 1横向 2纵向 3横纵
        Case 0,2
            hui.ScrollBars = 2
        Case Else
            hui.ScrollBars = 0
    End Select
    With hui         '调整位置
        .left = 0
        If sender.Rows(sender.Rows.count -1).Top < sender.Height - sender.rows(sender.rows.count -1).Height * 2 Then
            .Top = sender.GetCellRect(sender.Rows.count-1, 1).y
        Else
            .top = gh - hg - 1
        End If
        .width = sender.width
        .Height = hg + 2
        .Rows(1).Height = hg
    End With

此时该  固定合计行 的高度 就没有 -19 导致显示不出来
[此贴子已经被作者于2021/9/3 14:15:20编辑过]

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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/3 14:45:00 [只看该作者]

    Dim gh = sender.Height - 1
    Select Case sender.ScrollBarsVisible '显示了滚动条  0无 1横向 2纵向 3横纵
        Case 1,3
            gh = gh - 19
    End Select
改为
Dim gh = sender.ScrollableRectangle.height + 19

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


加好友 发短信
等级:一尾狐 帖子:445 积分:5361 威望:0 精华:0 注册:2016/1/28 2:59:00
  发帖心情 Post By:2021/9/4 3:28:00 [只看该作者]

图片点击可在新窗口打开查看

 回到顶部