找回密码
 立即注册

QQ登录

只需一步,快速开始

chenf1980

论坛元老

41

主题

147

帖子

9349

积分

论坛元老

积分
9349

活字格认证

chenf1980
论坛元老   /  发表于:2011-8-20 15:03  /   查看:6612  /  回复:5
我想做的效果是,按tab键活着鼠标点到该单元格的时候,那么就实现把该单元格的内容从右往左选中。
代码如下:
    Private Sub dw_振込入金取込_EditingControlShowing(ByVal sender As System.Object, ByVal e As GrapeCity.Win.MultiRow.EditingControlShowingEventArgs) Handles dw_振込入金取込.EditingControlShowing
         Dim t As TextBox = TryCast(e.Control, TextBox)
        If t IsNot Nothing Then
            If Not t.IsHandleCreated Then
                t.CreateControl()
            End If
            t.BeginInvoke(New System.Action(AddressOf Me.SetMousePos))
        End If
    End Sub

Private Sub SetMousePos()
         SendKeys.Send("{END}")
        SendKeys.Send("+{HOME}")
    End Sub

现在的问题是,按Tab键是对了,但是鼠标点击到该单元格的时候,还是跟原先一样,直接点到单元格内容的最右边去了。另外,MultiRow的editmode = editonenter
MultiRow版本:5.0

5 个回复

倒序浏览
robert
金牌服务用户   /  发表于:2011-8-22 09:29:00
沙发
我想了解下为什么需要这样选择(从右往左选择)?
回复 使用道具 举报
chenf1980
论坛元老   /  发表于:2011-8-22 10:07:00
板凳
嗯,因为单元格内比较窄,而该单元格内从数据库读出来的内容比较长,并且数据库是自动补足了空格,所以鼠标一点进去的时候,结果单元格内空白一片。
回复 使用道具 举报
chenf1980
论坛元老   /  发表于:2011-8-22 10:07:00
地板
所以客户要求,鼠标点进去的时候,实现从右往左选择
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2011-8-22 10:28:00
5#
尝试改写一下SetMousePos函数
Private Sub SetMousePos()
        GcMultiRow.Capture = False
        SendKeys.Send("{END}")
        SendKeys.Send("+{HOME}")
    End Sub
回复 使用道具 举报
chenf1980
论坛元老   /  发表于:2011-8-22 17:04:00
6#
果然可以了,这个capture是干嘛用的?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部