【问题标题】:Textbox Formatting文本框格式
【发布时间】:2010-11-13 03:59:50
【问题描述】:

假设内容符合某种模式(本质上是语法突出显示),是否有库可以根据内容对文本框(或 Richtextbox)的内容进行格式化?如果这在 web 世界和 winform 中都是可能的,那就太好了,尽管我更喜欢 winform(或 WPF)。

【问题讨论】:

标签: .net


【解决方案1】:

这是您需要的一点点。 它将选择第一个到第十个字符 或到 RichTextBox 的全长 然后更改选择的颜色。 关键是,一旦您做出选择,您就是在对选择进行更改,而不是对整个 RichTextBox。 然后,您可以将字体更改为粗体。 粗体有点奇怪。

'select the first character
rtbRichTextBox.SelectionStart = 0
'Select the length forward as far as you need to 
rtbRichTextBox.SelectionLength = 10 'Len(rtbRichTextBox.Text)

' change the text color
rtbRichTextBox.SelectionColor = Color.Blue

' make a highlight color over the text
'rtbRichTextBox.SelectionBackColor = Color.Yellow

Dim newFontStyle As System.Drawing.FontStyle

If rtbRichTextBox.SelectionFont IsNot Nothing Then
    newFontStyle = FontStyle.Bold
    rtbRichTextBox.SelectionFont = New Font(MyObj_Font_Arial.FontFamily, _
                                            MyObj_Font_Arial.Size, _
                                            newFontStyle)
end if

'a more straight forward bold would be to change the font.
Dim MyObjectArialFont As New Font("Arial", 6.5, FontStyle.Bold)
rtbRichTextBox.SelectionFont = MyObjectArialFont 

【讨论】:

    【解决方案2】:

    您可以自己在富文本框中执行此操作,只需选择文本并设置颜色。

    但是,还有更复杂的库...

    例如,由于您提到了 WinForms,您可能想查看SyntaxEditor by ActiPro

    【讨论】:

      【解决方案3】:

      您需要做的就是以编程方式选择文本,然后设置 SelectionColor 属性。当然,您需要编写正则表达式来确定要选择的文本,但之后对其着色很简单。

      哦,是的;这不适用于 TextBox,仅适用于 RichTextBox(显然)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多