【问题标题】:vb.net datagridview header right click eventvb.net datagridview 标题右键事件
【发布时间】:2015-01-14 08:32:03
【问题描述】:

不知道vb.net中是否有datagridview header右键事件。

在我的 vb.net 项目中,我有一个 datagridview,每当我右键单击标题部分时,应用程序都会崩溃。有没有办法避免崩溃,例如添加事件处理程序或任何其他方法?

谢谢。

datagrid相关代码:

更新1

我的datagrid相关代码如下:

Private Sub Result_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Try
        logger = log4net.LogManager.GetLogger("MyProject")
        logger.Info("Result_Load() - Start")

        Using connObj As New SqlClient.SqlConnection(My.Settings.dbConnectionString)
            connObj.Open()

            gridSql = "SELECT USER_ID, USER_NAME, USER_ADDRESS, USER_EMAIL FROM USER_DETAILS " & vbCrLf &
                      "WHERE USER_ID IN (" + Attribute.allUserSelected + ")"   
' the Attribute.allUserSelected is pass from another form

            logger.Info("gridSql= " + gridSql)

            Try
                adapter = New SqlDataAdapter(gridSql, connObj)
                adapter.Fill(ds)
                connObj.Close()
                DataGridView1.DataSource = ds.Tables(0)
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
        End Using

    Catch ex As Exception
        MsgBox(ex.ToString)
        logger.Error(ex.ToString)

        Return
    End Try

End Sub


Private Sub dataGridView1_ColumnHeaderMouseClick(ByVal sender As Object, ByVal e As DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick
    MsgBox("click the header....") 
   'I can get the message here
    If (e.Button = MouseButtons.Right) Then
        MsgBox("right click the header......") 
        'cannot get this ,message, crash immediately
    End If
end Sub

请指教,谢谢。

【问题讨论】:

  • 在没有任何代码的情况下会崩溃吗?如果您尚未定义事件,则此事件不会执行任何代码。也许你修改了绘图代码?
  • 您好 Btc,感谢您的快速回复。我什至没有找到是什么事件,只能找到表头的点击事件,而右键找不到。
  • 你能提供你的代码吗?
  • 大家好,刚刚找到一个解决方案,提到只使用 ColumnHeaderMouseClick 事件来处理右键单击事件,稍后将对其进行测试并更新状态。
  • 嗨 Btc 和 Jérémie,我已经附上了数据网格的代码,知道吗?非常感谢!

标签: vb.net datagridview header right-click


【解决方案1】:

这来得太晚了,但它无疑会对将来的某些人有所帮助

   DataGridView1. Columns ( 0). SortMode = DataGridViewColumnSortMode. NotSortable

您的列标题不会回复Left/Right Click

【讨论】:

  • 谢谢BlackPearl,不过我还是需要datagridview中的排序功能。
  • 您可以只让出现错误的列无法点击,其他的都可以正常工作。
  • 您好 BlackPearl,所有列都会导致问题。 :(
  • 我明白了,您希望如何对它们进行排序?您希望用户对其进行排序,还是只想以编程方式对其进行排序?
  • 您好 BlackPearl,我希望用户通过单击列标题对它们进行排序。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-30
  • 1970-01-01
相关资源
最近更新 更多