找回密码
 立即注册

QQ登录

只需一步,快速开始

keaitutu

注册会员

11

主题

33

帖子

94

积分

注册会员

积分
94

活字格认证

keaitutu
注册会员   /  发表于:2015-8-19 13:42  /   查看:4726  /  回复:4
版主好,上周我发过一个帖子:spread的单元格设置成Locked=true以后的单元格样式
现在又发现一个新的问题,能否在帮忙解决一下。
今天怎么上传不了图片。我只能用文字描述了。
问题:
现在按照楼主的方法加了一个LeaveCell的方法,背景色已经设好。
但是当我把鼠标点到这个spread以外的控件上,刚才我在这个spread点击之后设定的背景色还在。怎么把这个背景色在离开这个spread的时候删除?
我之前做过一个模块是一个MultiRow在CellClick的时候会设一个背景色,然后我加了一个Leave方法,在这个方法里面把背景色重设了一遍,可以实现。
现在这个用的是LeaveCell方法,和Leave方法会冲突了的。设置背景色这个用CellClick方法又实现不了。

4 个回复

倒序浏览
rbgongming
论坛元老   /  发表于:2015-8-19 14:45:00
沙发
当光标从Spread离开,点击到其他控件的时候是不触发LeaveCell事件的
思想就是用Leave事件去调用LeaveCell事件。请试一试如下代码!
Private Sub FpSpread1_LeaveCell(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.LeaveCellEventArgs) Handles FpSpread1.LeaveCell
        '移動前セルの背景色をリセットします
        FpSpread1.ActiveSheet.Cells(e.Row, e.Column).ResetBackColor()
        '移動後セルの背景色を設定します
        If Me.ActiveControl IsNot Nothing AndAlso Me.ActiveControl.Name = FpSpread1.Name Then
            FpSpread1.ActiveSheet.Cells(e.NewRow, e.NewColumn).BackColor = Color.SkyBlue
        End If
    End Sub

    Private Sub FpSpread1_Leave(sender As Object, e As EventArgs) Handles FpSpread1.Leave
        Dim View As New SpreadView
        With FpSpread1.ActiveSheet
            FpSpread1_LeaveCell(sender, New FarPoint.Win.Spread.LeaveCellEventArgs(View, .ActiveRowIndex, .ActiveColumnIndex, .ActiveRowIndex, .ActiveColumnIndex))
        End With
    End Sub

评分

参与人数 1金币 +999 收起 理由
frank.zhang + 999 协助回答问题

查看全部评分

把简单的事做好就是不简单,
把平凡的事做好就是不平凡。
回复 使用道具 举报
keaitutu
注册会员   /  发表于:2015-8-24 12:26:00
板凳
问题已经解决了,谢谢rbgongming
回复 使用道具 举报
rbgongming
论坛元老   /  发表于:2015-8-24 12:30:00
地板
回复 3楼keaitutu的帖子

不用客气,有问题欢迎继续提问。
把简单的事做好就是不简单,
把平凡的事做好就是不平凡。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-8-24 14:12:00
5#
您好,问题已经解决,本帖关闭,如有其它问题,请开新帖。

感谢rbgongming的热情回复。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部