加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb.net – 如果用户单击该行并将焦点从该行移开,则重置DataGridV

发布时间:2020-12-17 07:11:11 所属栏目:百科 来源:网络整理
导读:如果用户单击DataGridView底部的空白行并将焦点从DataGridView移开,则现在单击的行处于指示对该行进行更改的状态. 是否可以告诉DataGridView取消标记该行是否被更改? 焦点离开DataGridView时是否可以重置此行? 我们使用以下事件处理程序来提醒用户,如果将I
如果用户单击DataGridView底部的空白行并将焦点从DataGridView移开,则现在单击的行处于指示对该行进行更改的状态.

是否可以告诉DataGridView取消标记该行是否被更改?

焦点离开DataGridView时是否可以重置此行?

我们使用以下事件处理程序来提醒用户,如果将Invoiced On留空:

Private Sub dataGridViewPayments_CellValidating(ByVal sender As Object,_
ByVal e As DataGridViewCellValidatingEventArgs) _
Handles DataGridViewPayments.CellValidating

    Dim headerText As String = _
        DataGridViewPayments.Columns(e.ColumnIndex).HeaderText

    ' Validate the Invoiced On cell and display the error if it's empty.
    '-------------------------------------------------------------------
    If (String.IsNullOrEmpty(e.FormattedValue.ToString()) And
        headerText.Equals("Invoiced On")) Then

        DataGridViewPayments.Rows(e.RowIndex).ErrorText = _
            "Please enter an Inoiced On date."

        e.Cancel = True
    End If
End Sub

看起来我们需要一种方法来阻止执行,如果用户只需单击网格然后单击表单中的其他位置.

解决方法

你可以尝试这样的事情:

Private Sub dg_CellValidating(ByVal sender As Object,ByVal e As DataGridViewCellValidatingEventArgs) Handles dg.CellValidating
    Dim headerText As String = dg.Columns(e.ColumnIndex).HeaderText

    'Try this --------------------------------------------------------------
    Dim vClicked As Boolean = False
    If (Control.MouseButtons And MouseButtons.Left) = MouseButtons.Left Then
        vClicked = True
    End If
    '-----------------------------------------------------------------------

    'Validate the Invoiced On cell and display the error if it's empty.
    'And put vClicked here
    If Not vClicked AndAlso (String.IsNullOrEmpty(e.FormattedValue.ToString()) And headerText.Equals("Invoiced On")) Then

        dg.Rows(e.RowIndex).ErrorText = "Please enter an Inoiced On date."

        e.Cancel = True
    End If
End Sub

请告诉我它是否有帮助. =)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读