以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  求助:加入双击列标题后,找不到表  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=146626)

--  作者:hwlzgt
--  发布时间:2020/2/27 20:33:00
--  求助:加入双击列标题后,找不到表

弄了好久,才发现了问题所在。 因需要双击列标题隐藏列功能,所以借用了下面双击列名隐藏相关列的代码(这个看不懂,但能实现功能),问题是这段代码后,却无法引用表控件了。万望指教如何才能后续再引用表

 

If e.Form.Controls.Contains("Table1") Then
 MessageBox.show("找到Table")
End If

Dim dt As Table = e.Form.Controls("Table1").Table

 

\'双击列名隐藏相关列
\'提示:为第三方控件指定事件过程的语句是AddHandler,此语句的语法为:
\'AddHandler 控件.事件, AddressOf 过程
\'***********************************************************************************************
dt.Grid.Name = dt.Name
AddHandler dt.grid.MouseEnterCell, AddressOf MouseEnterCellHandler
AddHandler dt.grid.MouseLeaveCell, AddressOf MouseLeaveCellHandler
AddHandler dt.grid.DoubleClick, AddressOf DoubleClickHandler

 

 

If e.Form.Controls.Contains("Table1") Then
 MessageBox.show("找到Table")
Else
 MessageBox.show("没有Table")
End If

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目测试.zip

[此贴子已经被作者于2020/2/28 9:39:41编辑过]

--  作者:有点蓝
--  发布时间:2020/2/28 9:43:00
--  
dt.Grid.Name = dt.Name
上面代码的原因,可能导致底层控件的名称也发生变化了,

改为
If e.Form.ExistControl(dt.Grid.Name) Then
 MessageBox.show("找到Table")
Else
 MessageBox.show("没有Table")
End If

--  作者:hwlzgt
--  发布时间:2020/3/2 17:40:00
--  
你好,
Table有一个Grid属性,返回底层的C1.Win.C1FlexGrid.C1FlexGrid对象,
查好好久资料,还是没找到。 用C1.Win.C1FlexGrid.C1FlexGrid 对象的什么属性可以返回 table的表名
(不用  
dt.Grid.Name = dt.Name 改底层控件的名称,想通过C1.Win.C1FlexGrid.C1FlexGrid 对象的属性返回 table的表名)
[此贴子已经被作者于2020/3/2 17:44:12编辑过]

--  作者:有点蓝
--  发布时间:2020/3/2 20:01:00
--  
底层的东西我也没有研究,自己看帮助:http://our.componentone.com/docs/winforms/