以文本方式查看主题
- 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=133244)
|
-- 作者:happyft
-- 发布时间:2019/4/10 15:16:00
-- 记录窗口上如何实现与表同步显示锁标记
此主题相关图片如下:列表窗口001.jpg
sql窗口表当某列不可编辑时会显示一个小锁,但如果打开绑定的记录窗口时,不可编辑的列处不会显示小锁,很不直观,如何才以实现锁标记同步显示呢?
谢谢!
|
-- 作者:有点甜
-- 发布时间:2019/4/10 15:53:00
--
没办法。建议做一个简单的方法。在drawcell事件,如果列无法编辑,就显示为红色样式,即可。
|
-- 作者:HappyFt
-- 发布时间:2019/4/10 17:34:00
--
这个记录窗口是通用的,只有在项目事件CurrentTableChanged有下面的代码而已 If Forms("记录窗口").Opened Then Dim rgd As WinForm.RecordGrid = Forms("记录窗口").Controls("RecordGrid1") rgd.Table = CurrentTable \'指定绑定表 rgd.Build() End If
要在全局表事件drawcell中写代码来控制实际绑定表的列样式?
|
-- 作者:有点甜
-- 发布时间:2019/4/10 17:56:00
--
如果是通用的,写代码处理一下,如
If Forms("记录窗口").Opened Then Dim rgd As WinForm.RecordGrid = Forms("记录窗口").Controls("RecordGrid1") rgd.Table = CurrentTable \'指定绑定表 rgd.Build() Dim t = rgd.basecontrol For i As Integer = 0 To t.Rows.count-1 If CurrentTable.Cols(t.Rows(i)(0)).AllowEdit Then t.SetCellStyle(i, 0, "") Else Dim cs1 As C1.Win.C1FlexGrid.CellStyle = t.Styles.Add("样式1") cs1.forecolor = Color.red cs1.backcolor = Color.yellow \'cs1.font = new font("宋体", 15) t.SetCellStyle(i, 0, cs1) End If Next End If
|
-- 作者:HappyFt
-- 发布时间:2019/4/10 18:24:00
--
可以了,请教一下上面的这句 Dim t as table = rgd.basecontrol 为什么不用 as table? 是不是直接引用底层时后面都不用加变量名,
|
-- 作者:有点甜
-- 发布时间:2019/4/10 21:43:00
--
Dim t 等同于 Dim t As Object
当你不想写或者不知道类型的时候,可以不写,这样很省事。
|