以文本方式查看主题 - 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=111510) |
-- 作者:天一生水 -- 发布时间:2017/12/23 11:53:00 -- [求助]记录窗口双击 在窗口表的双击事件中,如果列名的开头是“文书类别_”,双击后,就在单元格打上"√"。 代码如下: For Each c As Col In Tables("编辑_table1").Cols
因为列太多,我把这些列放入记录窗口中,是在窗口的afterload事件中生成的记录窗口。 我想在记录窗口实现上述双击效果,应该怎样写代码? 谢谢! |
-- 作者:有点蓝 -- 发布时间:2017/12/23 12:04:00 -- 需要手工绑定升级事件,参考:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=102193&skin=0 |
-- 作者:天一生水 -- 发布时间:2017/12/23 12:38:00 -- 加黑的这句代码怎么改? 绑定DoubleClick事件的代码放到窗口的timertick行吗?
1、全局代码
Public Sub TblBase_DoubleClick(ByVal sender As Object, ByVal e As C1.Win.C1FlexGrid.OwnerDrawCellEventArgs) ----------------------------- 2、绑定DoubleClick事件
|
-- 作者:有点蓝 -- 发布时间:2017/12/23 14:23:00 -- 全局 Public Sub TblBase_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Dim r As C1.Win.C1FlexGrid.Row = sender.Rows(sender.Rowsel) If r(0).startswith(文书类别_") Then sender.FinishEditing r(1) = "√" End If End Sub 绑定放到窗口afterload事件 Dim brgd As C1.Win.C1FlexGrid.C1FlexGrid = e.Form.Controls("RecordGrid1").basecontrol
AddHandler brgd.DoubleClick, AddressOf TblBase_DoubleClick |
-- 作者:天一生水 -- 发布时间:2017/12/25 21:44:00 -- 老师,遇到个问题: 在记录窗口双击后,添加了"√",但是数据表中没有变化,是何原因? |
-- 作者:有点蓝 -- 发布时间:2017/12/25 22:38:00 -- 全局代码只能写死表格了 Public Sub TblBase_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Dim r As C1.Win.C1FlexGrid.Row = sender.Rows(sender.Rowsel) If r(0).startswith("第一") Then sender.FinishEditing() Dim r1 As Row = Tables("表A").Current \'改为自己的表名 If r1 IsNot Nothing Then r1(r(0)) = "√" End If End If End Sub |
-- 作者:天一生水 -- 发布时间:2017/12/25 23:00:00 -- 另一个新问题,我有一个清除记录窗口文本的代码,把记录窗口的内容清除了,但是数据表没有跟着变,请老师再帮助看看,谢谢! Dim bctr = e.Form.Controls("RecordGrid1").BaseControl |
-- 作者:有点蓝 -- 发布时间:2017/12/25 23:01:00 -- 去清除对应的表格的当前行,不要清除记录窗口 |
-- 作者:天一生水 -- 发布时间:2017/12/26 9:50:00 -- Dim str as string = tables("表A").current("文书类别_A") Str = ” ” Dim str1 as string = tables("表A").current("文书类别_B") Str1 = ” ” ...... 假如当前行有20几个多层表头相同的列值要清除,能否简化一下代码? 谢谢! |
-- 作者:有点甜 -- 发布时间:2017/12/26 10:07:00 -- For Each c As Col In Tables("表A").cols If c.name.Contains("文书类别_") Then c.Table.Current(c.name) = Nothing End If Next |