找回密码
 立即注册

QQ登录

只需一步,快速开始

liangdie_dandan

论坛元老

4

主题

25

帖子

5270

积分

论坛元老

积分
5270

活字格认证

liangdie_dandan
论坛元老   /  发表于:2014-9-28 12:19  /   查看:18370  /  回复:24
升级前环境:XP    VS FlexGridPro 8.0   VB
升级后环境:win7、win8      ComponentOne   VB.net

升级前代码为:VSFlexGrid.Cell(flexcpChecked, row, ColF_Yakan) = 5   
现象:设置框选中,不可编辑
升级后代码为:.SetCellCheck(row, ColF_Yakan, C1.Win.C1FlexGrid.CheckEnum.TSUnChecked)
现象:设置款不选中,可编辑
升级后代码如何改写才能变成选中不可编辑呢?


压缩包中升级前后的对比图,和升级后的工程代码和所需的DLL希望大家能帮忙解决,谢谢

XP代码:
Private Sub Form_Load()
  Call VSFlexGrid1_ini
End Sub

Sub VSFlexGrid1_ini()
    VSFlexGrid1.Cell(flexcpChecked, 1, 1) = 0
    VSFlexGrid1.Cell(flexcpChecked, 2, 1) = 1
    VSFlexGrid1.Cell(flexcpChecked, 3, 1) = 2
    VSFlexGrid1.Cell(flexcpChecked, 4, 1) = 3
    VSFlexGrid1.Cell(flexcpChecked, 5, 1) = 4
    VSFlexGrid1.Cell(flexcpChecked, 6, 1) = 5
End Sub

WIN7代码:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        C1FlexGrid1_ini()
    End Sub

    Private Sub C1FlexGrid1_ini()
        Dim rang As C1.Win.C1FlexGrid.CellRange
        rang = C1FlexGrid1.GetCellRange(1, 1)
        rang.Checkbox = C1.Win.C1FlexGrid.CheckEnum.None
        rang = C1FlexGrid1.GetCellRange(2, 1)
        rang.Checkbox = C1.Win.C1FlexGrid.CheckEnum.Checked
        rang = C1FlexGrid1.GetCellRange(3, 1)
        rang.Checkbox = C1.Win.C1FlexGrid.CheckEnum.Unchecked
        rang = C1FlexGrid1.GetCellRange(4, 1)
        rang.Checkbox = C1.Win.C1FlexGrid.CheckEnum.Grayed
        rang = C1FlexGrid1.GetCellRange(5, 1)
        rang.Checkbox = C1.Win.C1FlexGrid.CheckEnum.TSChecked
        rang = C1FlexGrid1.GetCellRange(6, 1)
        rang.Checkbox = C1.Win.C1FlexGrid.CheckEnum.TSUnchecked
        rang = C1FlexGrid1.GetCellRange(7, 1)
        rang.Checkbox = C1.Win.C1FlexGrid.CheckEnum.TSGrayed
    End Sub

本帖子中包含更多资源

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

x

24 个回复

正序浏览
Alice
社区贡献组   /  发表于:2014-9-30 13:48:00
25#
回复 24楼liangdie_dandan的帖子

不用客气。

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
liangdie_dandan
论坛元老   /  发表于:2014-9-30 10:03:00
24#
回复 23楼Alice的帖子

哦,了解了,谢谢你的帮助。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-29 17:28:00
23#
回复 22楼liangdie_dandan的帖子

我看了你附图的效果,是这样子的。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
liangdie_dandan
论坛元老   /  发表于:2014-9-29 14:43:00
22#
现在只能做成这种状态吗?

本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-29 11:44:00
21#
回复 20楼liangdie_dandan的帖子

不提供接口直接设置不可编辑又有颜色,只能手动通过代码设置不可编辑以及单元格的背景色。
比如你在设置这个单元格不能编辑的时候,在之前添加代码设置背景色为灰色。
  1. CellStyle syl = this.c1FlexGrid1.Styles.Add("style");
  2.             syl.BackColor = Color.LightGray;
  3.         void c1FlexGrid1_BeforeEdit(object sender, RowColEventArgs e)
  4.         {
  5.             if (e.Row == 1 && e.Col == 1)
  6.             {
  7.                 this.c1FlexGrid1.SetCellStyle(e.Row, e.Col, "style");
  8.                 e.Cancel = true;
  9.             }
  10.         }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
liangdie_dandan
论坛元老   /  发表于:2014-9-29 10:01:00
20#
回复 20楼Alice的帖子

单元格只读,不能实现和XP的图片一样吗?使单元格里的checkbox变灰?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-29 09:39:00
19#
回复 18楼liangdie_dandan的帖子

单元格只读,请使用BeforeEdit事件。
具体参考中文文档:
http://www.gcpowertools.com.cn/d ... #!Documents/_65.htm
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
liangdie_dandan
论坛元老   /  发表于:2014-9-28 19:11:00
18#
回复 16楼Alice的帖子

有代码能实现和VSFlexGrid.Cell(flexcpChecked, 1, 1) = 5   的现象一致就好了。。。。。

本帖子中包含更多资源

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

x
回复 使用道具 举报
liangdie_dandan
论坛元老   /  发表于:2014-9-28 18:59:00
17#
回复 15楼liangdie_dandan的帖子

如果是某列的只读,只需将该列的AllowEditing设置......
Alice 发表于 2014-9-28 18:42:00


因为项目要求的是是其他单元格应该是可操作状态。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部