苏州三木软件科技有限公司

 找回密码
 立即注册
搜索
热搜: 活动
查看: 441|回复: 1

全局表事件,解锁和非解锁的代码设置

[复制链接]

56

主题

98

帖子

355

积分

中级会员

Rank: 3Rank: 3

积分
355
发表于 2025-6-6 19:15:54 | 显示全部楼层 |阅读模式
我想要实现,表格锁定条件下,使用人员很容易能看出来,他是锁定的,不能编辑
我就想设置全局表格锁定状态下,表格的背景颜色是 “灰色”  或者文字颜色是 “红色”
当表格解锁后,变为平台原有的的白底黑字,
这个效果同时在体现在子窗口上

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

106

主题

473

帖子

2953

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2953
QQ
发表于 2025-6-6 20:43:54 | 显示全部楼层
目前的状态是,是否锁定根据左上角的”锁定“图标来判断。你说的这种不太好实现。主要也不是常规做法。下面提供一个实现的方法,主要是通过表格的OwnerDrawCell事件去实现。需要说明的一点时,如果系统中OwnerDrawCell事件代码写的多了,会影响表格性能的。自己平衡一下。

实现原理:如果想在所有表格或绝大多数表格中使用此效果,可以将事件代码放到全局事件中,然后再在对应的表中添加样式并启用全局表事件。
实现步骤如下:
第一步:在全局表事件中添加如下代码:



  1. Public Sub OwnerDrawCell(sender As Object, e As C1.Win.C1FlexGrid.OwnerDrawCellEventArgs)
  2.     Dim tbl As BaseGrid = CType(sender, BaseGrid)
  3.     If Not tbl.AllowEdit Then
  4.         If e.Row >= tbl.Cols.Fixed AndAlso e.Col >= tbl.Rows.Fixed Then
  5.             e.Style = tbl.Styles("DisabledStyle")
  6.         End If
  7.     End If
  8. End Sub
复制代码


C#版本的代码为
  1.                 public void OwnerDrawCell(object sender, C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e)
  2.                 {
  3.                         BaseGrid tbl=sender as BaseGrid;
  4.                         if(!tbl.AllowEdit)
  5.                         {
  6.                                 if(e.Row>=tbl.Cols.Fixed && e.Col>=tbl.Rows.Fixed)
  7.                                 {
  8.                                         e.Style=tbl.Styles["DisabledStyle"];
  9.                                 }
  10.                         }
  11.                 }
复制代码


第二步:在想实现效果的表属性中添加自定义样式效果。每个表中都要添加样式,如果省掉此步骤,可以考虑用代码替代。
代码添加样式可以考虑参考:[size=11.3333px]http://www.sanmugrid.com/help/index.htm?page=00554%E6%A0%B7%E5%BC%8F.htm
只要在第一步使用tbl.Styles["DisabledStyle"]之前先判断一下tbl.Styles是否包含”DisabledStyle“样式,如果不包含就添加一下。


第三步:在表事件中添加相应的全局事件OwnerDrawCell



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|苏州三木软件科技有限公司 ( 苏ICP备2022038390号 )

苏公网安备 32058502010732号

GMT+8, 2025-6-14 15:44 , Processed in 0.078600 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表