请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

kutu

注册会员

3

主题

9

帖子

24

积分

注册会员

积分
24
最新发帖
kutu
注册会员   /  发表于:2019-6-12 17:46  /   查看:2671  /  回复:5
本帖最后由 kutu 于 2019-6-12 17:55 编辑

1.使用旧版本ComponentOne Studio for WinForms 2010J的C1TrueDBGrid,C1TrueDBGrid1.EditActive = False引起BeforeColUpdate事件执行

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.WANGRR_TMTableAdapter.Fill(Me.JS2007_D1DataSet.WANGRR_TM)
    End Sub

    Private Sub C1TrueDBGrid1_ButtonClick(ByVal sender As System.Object, ByVal e As C1.Win.C1TrueDBGrid.ColEventArgs) Handles C1TrueDBGrid1.ButtonClick
        Me.C1TrueDBGrid1.EditActive = True
        Me.C1TrueDBGrid1.Columns(0).Text = "aaaaa"
        Me.C1TrueDBGrid1.Columns(1).Text = "bbbbb"
        Me.C1TrueDBGrid1.EditActive = False
    End Sub

    Private Sub C1TrueDBGrid1_BeforeColUpdate(ByVal sender As System.Object, ByVal e As C1.Win.C1TrueDBGrid.BeforeColUpdateEventArgs) Handles C1TrueDBGrid1.BeforeColUpdate
        Console.WriteLine("BeforeColUpdate" & Now.ToString("yyyy/MM/dd HH:mm:ss"))
    End Sub
End Class

2.使用新版本ComponentOne Studio for WinForms 2018J v3的C1TrueDBGrid,C1TrueDBGrid1.EditActive = False不会引起BeforeColUpdate事件执行

Public Class Form3



    Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.WANGRR_TMTableAdapter.Fill(Me.JS2007_D1DataSet.WANGRR_TM)
    End Sub


    Private Sub C1TrueDBGrid1_ButtonClick(sender As Object, e As C1.Win.C1TrueDBGrid.ColEventArgs) Handles C1TrueDBGrid1.ButtonClick
        Me.C1TrueDBGrid1.EditActive = True
        Me.C1TrueDBGrid1.Columns(0).Text = "aaaaa"
        Me.C1TrueDBGrid1.Columns(1).Text = "bbbbb"
        Me.C1TrueDBGrid1.EditActive = False

    End Sub

    Private Sub C1TrueDBGrid1_BeforeColUpdate(sender As Object, e As C1.Win.C1TrueDBGrid.BeforeColUpdateEventArgs) Handles C1TrueDBGrid1.BeforeColUpdate
        Console.WriteLine("BeforeColUpdate----" & Now.ToString("yyyy/MM/dd HH:mm:ss"))
    End Sub


End Class

本帖子中包含更多资源

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

x

5 个回复

正序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-6-14 16:47:56
6#
嗯,好的
回复 使用道具 举报
kutu
注册会员   /  发表于:2019-6-14 15:58:19
5#
本帖最后由 kutu 于 2019-6-20 13:01 编辑
Richard.Ma 发表于 2019-6-13 13:44
现在1的场景下没有问题,所以在界面编辑的内容都是可以在后台事件中触发的。

场景2本来就是在后台写代码 ...

Public Class Form3

    Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
         Me.WANGRR_TMTableAdapter.Fill(Me.JS2007_D1DataSet.WANGRR_TM)
     End Sub


    Private Sub C1TrueDBGrid1_ButtonClick(sender As Object, e As C1.Win.C1TrueDBGrid.ColEventArgs) Handles C1TrueDBGrid1.ButtonClick
        Me.C1TrueDBGrid1.EditActive = True
         Me.C1TrueDBGrid1.Columns(0).Text = "aaaaa"

         Me.C1TrueDBGrid1.Editor.Text="aaaaa"
         Me.C1TrueDBGrid1.Columns(1).Text = "bbbbb"
         Me.C1TrueDBGrid1.EditActive = False

    End Sub

    Private Sub C1TrueDBGrid1_BeforeColUpdate(sender As Object, e As C1.Win.C1TrueDBGrid.BeforeColUpdateEventArgs) Handles C1TrueDBGrid1.BeforeColUpdate
        Console.WriteLine("BeforeColUpdate----" & Now.ToString("yyyy/MM/dd HH:mm:ss"))
     End Sub
End

这样改了下,貌似要的现象达到了
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-6-13 13:44:11
地板
现在1的场景下没有问题,所以在界面编辑的内容都是可以在后台事件中触发的。

场景2本来就是在后台写代码,完全可以在修改时来调用方法来判断是否修改,这个不需要在事件中来判断,


回复 使用道具 举报
kutu
注册会员   /  发表于:2019-6-12 19:32:26
板凳
本帖最后由 kutu 于 2019-6-12 20:23 编辑
Richard.Ma 发表于 2019-6-12 18:00
版本更新可能确实少数功能会发生一些变化。您这边现在具体是需要解决什么问题呢?

1. 手动在cell进行值入力的时候,会触发BeforeColUpdate事件,在事件里面进行了业务逻辑判断,不符合时用 e.cancel= true 中断
2. ButtonClick会启动检索画面,从检索画面返回的值,对cell进行赋值,BeforeColUpdate不再触发,业务逻辑判断也不进行了

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-6-12 18:00:22
沙发
版本更新可能确实少数功能会发生一些变化。您这边现在具体是需要解决什么问题呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部