Foxtable(狐表)用户栏目专家坐堂 → 关于自动调节窗体表的列宽


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

主题:关于自动调节窗体表的列宽

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


加好友 发短信
等级:八尾狐 帖子:1995 积分:12678 威望:0 精华:0 注册:2017/4/3 15:01:00
关于自动调节窗体表的列宽  发帖心情 Post By:2020/3/20 14:15:00 [只看该作者]

窗体表怎么根据窗体表的的大小来自动设置表中各列宽的比例来适应窗体表的宽度呢?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

只能平分各列的宽度

SizeChanged事件

Dim lst As new List(of String)

Dim ct As WinForm.Table = e.Form.Controls("Table1")
Dim t As Table = ct.Table
For Each c As Col In t.Cols
    If c.Visible Then lst.Add(c.Name)
Next

Dim w As Integer = (ct.Width-30) / lst.Count
t.SetColVisibleWidth(String.Join("|" & w & "|",lst.ToArray) & "|" & w)

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


加好友 发短信
等级:八尾狐 帖子:1995 积分:12678 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2020/3/20 15:18:00 [只看该作者]

有两个窗体表分别放在了分割面板的Panel1和Panel2中当Panel1隐藏后怎样将Panel2中的数据表的各列适应表的宽度呢?

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/20 15:33:00 [只看该作者]

隐藏后调用2楼的代码

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


加好友 发短信
等级:八尾狐 帖子:1995 积分:12678 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2020/3/20 16:25:00 [只看该作者]

怎么调用隐藏时间呀?我用的是你给我的框框设计的单机分割线来执行显示和隐藏其中一个面板的,不知道调用这个事件是什么?


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/20 17:05:00 [只看该作者]


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


加好友 发短信
等级:八尾狐 帖子:1995 积分:12678 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2020/3/20 17:50:00 [只看该作者]

蓝老师能控制某几个列吗?这样设置有的列宽不需要那么 宽可有的列太小了

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

Dim lst As new List(of String)
lst.AddRange({"第五列","第六列"})
Dim ct As WinForm.Table = e.Form.Controls("Table1")
Dim t As Table = ct.Table
'Dim t As Table = Tables("表A")
Dim str As String
Dim w As Integer = 0
For Each c As Col In t.Cols
    If c.Visible Then
        If lst.Contains(c.Name) Then
            str = str & "|" & c.Name & "|[width]"
        Else
            If c.Width = -1 Then
                str = str & "|" & c.Name & "|98"
                w += 98
            Else
                str = str & "|" & c.Name & "|" & c.Width
                w += c.Width
            End If
        End If
    End If
Next

Dim w2 As Integer = (ct.Width-30- w) / lst.Count
str = str.trim("|").Replace("[width]",w2)
t.SetColVisibleWidth(str)

 回到顶部