Kissmint 发表于 2015-3-11 10:54:00

关于EditOnEnter模式下的Enter事件

EditOnEnter模式下,从multirow以外的控件,点击multirow中textboxcell的时候,因为在multirow的enter事件里有check处理,出错的时候会把焦点移到multirow以外的控件上,然后系统又自动触发一次multirow的enter事件,也就是说会触发两次multirow的enter事件,实际上我们只想触发一次multirow的enter事件,请问有什么办法能解决。谢谢。PS:debug了一下好像MultiRow会记住上次点的cell,所以在焦点厉害之后会再走Enter。而checkboxcell和comboboxcell会触发3次Enter事件。

Private Sub MultiRow1_Enter(sender As Object, e As EventArgs) Handles MultiRow1.Enter

        ……(省略)

        G_Rtn = Check()
        If G_Rtn <> 0 Then
          Exit Sub
        End If

        ……(省略)

End Function


Private Function Check() As Integer

        ……(省略)

        If String.IsNullOrEmpty(CD.Text) Then
                MsgBox(“请输入CD”)
                CD.Focus()
                Exit Function
        End If

        ……(省略)

End Function

Alice 发表于 2015-3-11 17:33:00

回复 1楼Kissmint的帖子

对你的代码进行了分析和研究。

MultiRow的事件触发方式就是这样设计的,因此就目前你的构架方式来说,很抱歉的确不能实现需求。
页: [1]
查看完整版本: 关于EditOnEnter模式下的Enter事件