在datagridviewTextBoxCell Vb.net中使用第一行下划线的多行文本

时间:2013-02-19 13:49:21

标签: vb.net

我可以在插入时使用Environment.NewLine在datagridViewtextboxcell中添加多行文本。但我想为第一行添加下划线。那我怎么能在vb.net中实现这个呢?

现在我正在处理DGV的绘制方法,以日期格式显示2种颜色的日期(如第一列中所示)。

请查看附件, enter image description here

在电子邮件和单元格编号的第二列中,我想绘制下划线。

感谢。

1 个答案:

答案 0 :(得分:0)

我正在回答我自己的问题。 处理DataGridView1_CellPainting并为特定的单元格/列调用此方法。首先分隔字符串并使用TextRenderer类将其渲染为新位置2次。

我不知道这是正确的方法,但它确实有效。

Private Sub CellText_Underline(color As Color, e As DataGridViewCellPaintingEventArgs)

    Dim text As String = e.FormattedValue.ToString()

    Dim nameParts As String() = text.Split(" ")

    Dim topLeft As New Point(e.CellBounds.X, CInt(e.CellBounds.Y + (e.CellBounds.Height / 4)))

    Dim arialBold As New Font("Arial", 11, FontStyle.Regular Xor FontStyle.Underline)

    TextRenderer.DrawText(e.Graphics, nameParts(0), arialBold, topLeft, color)

    Dim topLeft_1 As New Point(e.CellBounds.X, CInt(e.CellBounds.Y + (e.CellBounds.Height / 4) + 5))
    Dim s As Size = TextRenderer.MeasureText(nameParts(0), arialBold)
    Dim p As New Point(topLeft_1.X, topLeft_1.Y + 12)

    Dim arialBold_1 As New Font("Arial", 11, FontStyle.Regular)
    TextRenderer.DrawText(e.Graphics, nameParts(1), arialBold_1, p, SystemColors.WindowText)
End Sub

感谢。