以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于自动调节窗体表的列宽  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147610)

--  作者:裴保民
--  发布时间:2020/3/20 14:15:00
--  关于自动调节窗体表的列宽
窗体表怎么根据窗体表的的大小来自动设置表中各列宽的比例来适应窗体表的宽度呢?
--  作者:有点蓝
--  发布时间: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)

--  作者:裴保民
--  发布时间:2020/3/20 15:18:00
--  
有两个窗体表分别放在了分割面板的Panel1和Panel2中当Panel1隐藏后怎样将Panel2中的数据表的各列适应表的宽度呢?
--  作者:有点蓝
--  发布时间:2020/3/20 15:33:00
--  
隐藏后调用2楼的代码
--  作者:裴保民
--  发布时间:2020/3/20 16:25:00
--  
怎么调用隐藏时间呀?我用的是你给我的框框设计的单机分割线来执行显示和隐藏其中一个面板的,不知道调用这个事件是什么?


--  作者:有点蓝
--  发布时间:2020/3/20 17:05:00
--  
http://www.foxtable.com/webhelp/topics/0829.htm
--  作者:裴保民
--  发布时间:2020/3/20 17:50:00
--  
蓝老师能控制某几个列吗?这样设置有的列宽不需要那么 宽可有的列太小了
--  作者:有点蓝
--  发布时间: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)