以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何获得当前列的列名?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=31453)

--  作者:comnets
--  发布时间:2013/4/15 20:01:00
--  如何获得当前列的列名?
如何获得当前列的列名?
--  作者:fjlclxj
--  发布时间:2013/4/15 21:26:00
--  
表AfterSelChange事件
MessageBox.Show( e.Table.Cols(e.NewRange.ColSel).Name)

--  作者:fjlclxj
--  发布时间:2013/4/15 21:29:00
--  

帮助文件

AfterSelChange

选择不同的单元格后执行,也就是表的RowSelColSel属性发生变化后执行。

e参数属性: 

Table: 引发事件的Table
OldRange:CellRange类型,表示操作前选定的区域
NewRange: CellRange 类型,表示操作后选定的区域

示例一

如果希望选择某些列的时候,单元格能自动进入编辑状态,可以参考下面的代码:

Dim c As Col = e.Table.Cols(e.NewRange.ColSel)

Select Case c.name

Case "列名一","列名二","列名三","列名四"

e.Table.StartEditing()

End Select

 

显然,如果希望选择任何列,单元格都能自动进入编辑状态,只需将代码设置为:

 

e.Table.StartEditing()

示例二

如果希望换行后,能够自动保存之前选定的行:

If e.OldRange.RowSel <> e.NewRange.RowSel \'如果选择的是不同的行
If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then \'而且原来选择的是一个有效的数据行
Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) \'获得原来选择的行
r.Save()
\'保存之
End If
End

示例三

为了在状态行显示单元格位置,可将本事件的代码设为:

With e.Table
StatusBar.Message1 =
"第" & .RowSel & "行 第" & .ColSel & "列"
End
With


--  作者:程兴刚
--  发布时间:2013/4/15 21:31:00
--  
以下是引用comnets在2013-4-15 20:01:00的发言:
如何获得当前列的列名?

 

需要说明在什么事件,有的时候,最简单是e.col.name或e.datacol.name


--  作者:comnets
--  发布时间:2013/4/16 7:38:00
--  
是在窗口的按钮的click事件中应用。是用来做工作过程痕迹记录,某个用户改动过某项之后保存时另一个表会记录他改了哪一列。他改的是哪一行这个问题已经解决。
[此贴子已经被作者于2013-4-16 7:52:02编辑过]

--  作者:comnets
--  发布时间:2013/4/16 9:25:00
--  
UP
--  作者:Bin
--  发布时间:2013/4/16 9:31:00
--  
MessageBox.Show( Tables("表A").Cols(Tables("表A").ColSel).Name)