以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]遍历列宽返回-1?【已解决】  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101476)

--  作者:狐作非为
--  发布时间:2017/6/1 10:19:00
--  [求助]遍历列宽返回-1?【已解决】
For Each dc As Col In Tables("temp_table1").Cols
    Output.Show(dc.Width)
Next

怎么返回的都是-1?


还有就是对此窗口表中的列隐藏后,仍可以遍历出来,如何不出来?
[此贴子已经被作者于2017/6/1 11:35:48编辑过]

--  作者:有点色
--  发布时间:2017/6/1 10:26:00
--  

 -1是默认列宽,是98,你也可以直接获取

 

Dim t As Table = Tables("表A")
For Each dc As Col In t.Cols
    Output.Show(t.grid.Cols(dc.name).WidthDisplay)
Next


--  作者:wyz20130512
--  发布时间:2017/6/1 10:32:00
--  
列宽的默认值本来就是“-1”。
--  作者:有点色
--  发布时间:2017/6/1 10:37:00
--  
以下是引用狐作非为在2017/6/1 10:19:00的发言:


还有就是对此窗口表中的列隐藏后,仍可以遍历出来,如何不出来?
[此贴子已经被作者于2017/6/1 10:22:07编辑过]

 

加入判断 If c.Visible = True Then


--  作者:狐作非为
--  发布时间:2017/6/1 10:38:00
--  
我想获取当前表格所有列宽怎么弄?
--  作者:狐作非为
--  发布时间:2017/6/1 10:41:00
--  

加入判断 If c.Visible = True Then

  

还是会遍历出来,难道副本不行?

--  作者:有点色
--  发布时间:2017/6/1 10:44:00
--  

Dim t As Table = Tables("表A")
For Each dc As Col In t.Cols

    If dc.Visible=true Then
        Output.Show(t.grid.Cols(dc.name).WidthDisplay)

    End If
Next


--  作者:狐作非为
--  发布时间:2017/6/1 11:27:00
--  
谢谢,但如果是
For i As Integer =0 To t.Cols.Count-1  
    If t.Cols(i).Visible=True Then
        Output.Show(t.Cols(i).name) & "|" & t.grid.Cols(i).name.Width)  这里应该怎么改?
    End If
Next

--  作者:有点色
--  发布时间:2017/6/1 11:31:00
--  

Dim t As Table = CurrentTable
For i As Integer =0 To t.Cols.Count-1 
    If t.Cols(i).Visible=True Then
        Output.Show(t.Cols(i).name & "|" & t.grid.Cols(i+1).Width) 
    End If
Next

 

或者

 

Dim t As Table = CurrentTable
For i As Integer =0 To t.Cols.Count-1 
    If t.Cols(i).Visible=True Then
        Output.Show(t.Cols(i).name & "|" & t.grid.Cols(t.Cols(i).name).Width) 
    End If
Next


--  作者:狐作非为
--  发布时间:2017/6/1 11:35:00
--  
谢谢