找回密码
 立即注册

QQ登录

只需一步,快速开始

shiyi9012

注册会员

8

主题

23

帖子

93

积分

注册会员

积分
93
shiyi9012
注册会员   /  发表于:2020-3-2 18:21  /   查看:3605  /  回复:5
1金币
试着在click里调用leavecell,但因为还要传参数失败了。想要调整执行顺序,有办法做到吗。

最佳答案

查看完整内容

您的答案我复制过来,作为最佳答案 因为开始会默认选中一个格子,点击想进入的格子就会触发leavecell。 增加个判断和flag就没问题了。

5 个回复

倒序浏览
最佳答案
最佳答案
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-3-2 18:21:01
来自 6#
本帖最后由 Richard.Ma 于 2020-9-15 12:07 编辑


您的答案我复制过来,作为最佳答案
因为开始会默认选中一个格子,点击想进入的格子就会触发leavecell。
增加个判断和flag就没问题了。

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-3-3 11:04:53
2#
能具体点吗,目的是什么?
回复 使用道具 举报
shiyi9012
注册会员   /  发表于:2020-3-3 12:12:32
3#
dexteryao 发表于 2020-3-3 11:04
能具体点吗,目的是什么?

现在有一个leavecell事件,判断格内值不符合要求就取消离开。
点击按钮会保存表中的值并关闭窗口。
我找到了点击按钮后调用leavecell事件的办法,但传的值不正确。
有很多因为执行顺序需要修改的,所以不能用别的办法,要考虑复用性和冲突,会更复杂。
代码大概是这样,设置完后除了一堆的问题。首先leave的方法在点击时就发生了,但并没有跑过entercell,不知为什么会这样。第二e.canncel不能正确执行
leave方法我希望如果值为0或与其他值相同,就把值设为0并取消离开动作。
   Public Sub FpSpread1_LeaveCell(ByVal sender As Object, ByVal e As LeaveCellEventArgs) Handles SPR_KoumokuEdit.LeaveCell
        Dim spread As TsSpread = Me.SPR_KoumokuEdit
        Dim sheet As FarPoint.Win.Spread.SheetView = spread.ActiveSheet
        For i As Integer = sheet.FrozenRowCount To sheet.RowCount - 1
            If i <> sheet.ActiveRowIndex Then
                    If sheet.Cells(i, 8).Value = sheet.Cells(sheet.ActiveRowIndex, 8).Value Or sheet.Cells(sheet.ActiveRowIndex, 8).Value = 0 Then
sheet.Cells(e.Row, 8).Value = 0
                        e.Cancel = True
                        Exit For
                    End If
End If
        Next
    End Sub

  Protected Overrides Sub GcShpBtn_OK_Click(sender As Object, e As EventArgs)
        'Dim spread1 As TsSpread = Me.SPR_KoumokuEdit
        'Dim ss1 As FarPoint.Win.Spread.SpreadView = spread1.GetRootWorkbook
        'Dim instance As New LeaveCellEventArgs(ss1, enterRow, enterCol, enterRow + 1, enterCol)
        '执行LeaveCell
        'FpSpread1_LeaveCell(spread1, instance)
        上传数据库
        Me.DialogResult = DialogResult.OK
        Me.Close()
    End Sub
在进入cell时设行列数值
Private Sub SPR_KoumokuEdit_EnterCell(sender As Object, e As EnterCellEventArgs) Handles SPR_KoumokuEdit.EnterCell
        enterRow = e.Row
        enterCol = e.Column
    End Sub
回复 使用道具 举报
shiyi9012
注册会员   /  发表于:2020-3-3 13:22:46
4#
自己解决了。是因为开始会默认选中一个格子,点击我想进入的格子就会触发leavecell。
增加个判断和flag就没问题了。
回复 使用道具 举报
shiyi9012
注册会员   /  发表于:2020-3-3 15:34:18
5#
自己解决了。是因为开始会默认选中一个格子,点击我想进入的格子就会触发leavecell。
增加个判断和flag就没问题了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部