在vb.net中,如何使用列标题单击上的数字和文本对datagridview列进行排序

时间:2012-02-13 13:50:32

标签: vb.net datagridview

似乎在单击datagridview列标题时,将根据列类型自动对列进行排序。我有一个列显示一些数字。如果列类型是字符串,则将“1”,“20”,“3”分类为“1”,“20”,“3”。如果列类型为double,则将其分为“1”,“3”,“20”,这是我想要的结果。但是,数字中可能存在一些错误,错误消息(文本)将显示在单元格而不是数字中。所以我不能将列类型设置为double。我想忽略这些错误消息并对所有数字进行排序。我怎么能这样做?

另外,我需要在datagridview中为不同的行添加一些背景颜色。所以在列标题点击事件中,我调用bkgColor Sub来实现这一点。我的问题是如何在此事件中覆盖排序方法?

    Private Sub DataGridView1_ColumnHeaderMouseClick(sender As Object, e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick
    Try

        bkgColor(DataGridView1) 'A Sub used to add background colors to different rows in datagridview
    Catch
        StatusUpdate("Unable to sort datagrid view", True)
    End Try

End Sub

1 个答案:

答案 0 :(得分:0)

你问两个不同的问题 对于第一个:查看DefalutCellStyle的“Null值”:如果获得空值,请不要放置文本。
对于第二个问题:不是单击列标题,而是创建一个ContextMenuStrip并将其分配给网格以实现相同的结果:无需覆盖和更简单的事情;)