【问题标题】:Avoid some functions/events to run when one function/events is clicked or executed避免在单击或执行一个功能/事件时运行某些功能/事件
【发布时间】:2016-08-15 05:34:53
【问题描述】:

我正在使用 vb.net 开发一个系统,我对 datagridview 函数有一些疑问。在gridview中是否有可能当我单击rowheader函数时它不会执行它的单元格输入函数?

因为我的问题是在我的单元格输入事件/函数中,如果用户在第一个单元格上输入,则有一个代码将显示一些文本框。我希望当我单击我的网格视图的行标题时,这个单元格输入事件/函数将不会被执行。有可能吗?给我一些提示或技巧。

我也做过这样的尝试

私有子 gridview_RowHeaderMouseClick 。 . . textbox.visible = false gridview.endEdit(true) 结束子

结果还可以,但对客户端视图不利,我想进一步改进。

这是我的代码。

Private Sub dgCharges_CellEnter(sender As Object, e As DataGridViewCellEventArgs) Handles dgCharges.CellEnter
 if e.ColumnIdex >= 0 Then
    if e.ColumnIndex = 5 Then
      'Show Textbox.
    End If
 End if
End Sub

Private Sub dgCharges_RowHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgCharges.RowHeaderMouseClick
 'Textbox.visible = false //this line i've use to hide the textbox when user
 clicked row header.
 dgCharges.EndEdit(True)
End Sub

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    只需在 CellEnter 函数中进行测试,如果列索引 >= 0,则仅执行代码的受限部分。标题具有索引 -1

    Private Sub DataGridView1_CellEnter(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEnter
        If e.ColumnIndex >= 0 Then
            'Do my stuff
        End If
    End Sub
    

    -------- 编辑----

    为了防止 datagridview 单元格编辑器弹出,只需将该列设置为只读。或者更多控制使用

    Private Sub DataGridView1_CellBeginEdit(sender As System.Object, e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles DataGridViewMsg.CellBeginEdit
        'Test your criteria
        If shouldBeReadonly Then
            e.Cancel = True
        End If
    End Sub
    

    【讨论】:

    • 我已经尝试过这段代码,但仍然无法正常工作。行标题仍在执行单元格输入事件/功能。也许是因为 rowheader 的影响?当我单击 rowheader 事件时,会选择整行,但这是行标题的默认功能。如果在我的 cellenter 事件中,我也有两个。第一个是你给我的,第二个是特定的索引 clicke。这是第一个单元格的索引
    • 我认为您的问题是单击行标题时您的文本框仍在显示。有什么问题?
    • 问题是有什么办法可以避免 cellenter 事件。这样当用户单击行标题时,文本框将不再显示,除非用户单击 gridview 的特定单元格
    • 啊,对不起。我现在知道了。你没有弹出一个文本框,你只是想阻止编辑。尝试将列设置为只读。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 2015-06-05
    • 2023-03-16
    • 2021-09-06
    相关资源
    最近更新 更多