如何在Richtextbox上循环BOLD行?

时间:2014-04-22 06:24:26

标签: vb.net richtextbox vb.net-2010 rtf

Richtextbox文字是:

尝试过的代码:

for I as integer=0 to richtextboxBold.lines.length-1

   If islineBold(richtextboxBold.liines(I)) then 

      richtextboxOutput.AppendText("Line "& I &" is Bold")
   Else

      richtextboxOutput.AppendText("Line "& I &" is Not Bold")

   End If

Next

Function islineBold(byval str as string) as Boolean

End Function

需要输出:

  

第1行是Bold
  第2行不是大胆的

1 个答案:

答案 0 :(得分:2)

尝试这样的事情:

Dim sLine As String        
Dim iCont As Integer

For (i As Integer = 0 To rt.Lines.Lenght - 1)
    sLine = rt.Lines(i)
    rt.Select(iCont, sLine.Length - 1)

    If rt.SelectionFont.Bold Then
        richtextboxOutput.AppendText("Line "& i + 1 &" is Bold")
    Else
        richtextboxOutput.AppendText("Line "& i + 1 &" is Not Bold")
    End If

    iCont += sLine.Length
Loop

其中rtRichTextBox。这将检查整行是否为粗体。

你无法测试某些东西是否是粗体只将一个字符串传递给该函数,因为唯一的选择就是在RichTextBox中找到文本并可以重复。如果你想做一个功能,你可以这样做:

Function IsBoldText(rt As RichTextBox, start As Integer, length As Integer)
    rt.Select(start, length)
    Return rt.SelectionFont.Bold
End Function