百里叶扬 发表于 2024-2-18 16:53:09

C1flexgrid 的ChangeEdit事件,如何修改后的值

修改单元格的内容后,触发ChangeEdit事件,在事件中处理修改后的值,现使用 getdata ,但提示 error BC31003: 只允许在交互提交结尾处使用表达式语句。

请教如何获取修改的值呢

Richard.Ma 发表于 2024-2-18 16:53:10

首先,单元格目前是在编辑状态,所以你应该是去获取或者编辑这个编辑器的值
可以通过c1FlexGrid1.Editor.Text属性

另外,在编辑状态你去设置了改变了当前的 文本值。又会重复触发ChangeEdit事件。造成重复执行死循环
这个你得根据你自己的业务需要,进行逻辑判断看看如何设置

Richard.Ma 发表于 2024-2-18 17:29:21

请给出事件中的完整代码,以及你最终的需求是什么,我没有看懂你说的“如何修改后的值”

百里叶扬 发表于 2024-2-19 09:06:39

Richard.Ma 发表于 2024-2-18 17:29
请给出事件中的完整代码,以及你最终的需求是什么,我没有看懂你说的“如何修改后的值”

Private Sub Fg_StartEdit(sender As Object, e As RowColEventArgs) Handles Fg.StartEdit
      If e.Col = 2 Then
            Fg_Kmbm.SetBounds(Fg.Cols(e.Col).Left, Fg.Rows(e.Row + 1).Top, Fg.Cols(e.Col).Width, Fg_Kmbm.Height)
            Fg_Kmbm_Resh()
            Fg_Kmbm.Visible = True
      Else
            Fg_Kmbm.Visible = False
      End If
    End Sub

    Private Sub Fg_ChangeEdit(sender As Object, e As EventArgs) Handles Fg.ChangeEdit

      If Fg.Col = 2 Then
            Dim lsCls_Subject As New DB_Read.ClsBasic_Setting_Subject_Beginning
            Dim lsTb_Subject As DataTable = lsCls_Subject.Get_Subject(mySqlConn, " where (kmbm like '%" & Fg.GetData(Fg.Row, Fg.Col).ToString.Trim & "%' or zjm like '%" & Fg.GetData(Fg.Row, Fg.Col).ToString.Trim & "%') and ynxj = 0 ", pYear)
            Dim lsErr_Subject As String = lsCls_Subject.Err

            If lsErr_Subject.Trim.Length = 0 Then
                If lsTb_Subject.Rows.Count > 0 Then

                  For i = 0 To lsTb_Subject.Rows.Count - 1
                        Fg_Kmbm.AddItem("")

                        Fg_Kmbm.SetData(Fg_Kmbm.Rows.Count - 1, 0, lsTb_Subject.Rows(i)("kmbm").ToString.Trim)
                        Fg_Kmbm.SetData(Fg_Kmbm.Rows.Count - 1, 1, lsTb_Subject.Rows(i)("kmmc").ToString.Trim)
                        Fg_Kmbm.SetData(Fg_Kmbm.Rows.Count - 1, 2, IIf(lsTb_Subject.Rows(i)("yefx").ToString = "j", "借", "贷").ToString)
                  Next 'i
                End If
            Else
                MessageBox.Show("加载编码故障(" & lsErr_Subject & ")", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
      End If

    End Sub

Fg和Fg_Kmbm 都是C1flexgrid控件,在Fg控件中输入一个编码字符时,Fg_Kmbm会列出所有包含这个字符的编码,名称等

百里叶扬 发表于 2024-2-19 09:54:03

Richard.Ma 发表于 2024-2-19 09:38
首先,单元格目前是在编辑状态,所以你应该是去获取或者编辑这个编辑器的值
可以通过c1FlexGrid1.Editor.T ...

这个属性正好解决了我的问题,太谢谢了。

百里叶扬 发表于 2024-2-19 10:02:32

Richard.Ma 发表于 2024-2-19 09:38
首先,单元格目前是在编辑状态,所以你应该是去获取或者编辑这个编辑器的值
可以通过c1FlexGrid1.Editor.T ...

对了,有没有介绍c1FlexGrid控件属性,方法的文档呢

Richard.Ma 发表于 2024-2-19 16:28:25

暂时还没有完整的,可以先参考这里
https://help.grapecity.com.cn/display/ComponentOne/ComponentOne+Studio+For+WinForms


我们近期会在官网更新一版C1的完整文档。

百里叶扬 发表于 2024-2-19 16:33:17

Richard.Ma 发表于 2024-2-19 16:28
暂时还没有完整的,可以先参考这里
https://help.grapecity.com.cn/display/ComponentOne/ComponentOne+St ...

好的,谢谢

Richard.Ma 发表于 2024-2-19 16:52:40

不客气
页: [1]
查看完整版本: C1flexgrid 的ChangeEdit事件,如何修改后的值